btrfs 不支持吗errors=continue
?
在我的 yocto 发行版中,我无法使用exfat
文件系统安装 USB 密钥。
如果我执行以下命令:
> blkid /dev/sda
/dev/sda: LABEL="my-label" UUID="FC4D-5949" BLOCK_SIZE="512" TYPE="exfat"
因此我确定 USB 文件系统是exfat
,但是当我尝试执行mount
命令时出现以下错误:
> mount /dev/sda /media
mount: /media: unknown filesystem type 'exfat'.
如果我执行该命令cat /proc/filesystems
(这里我找到了该cat
命令),则支持的文件系统列表为:
> cat /proc/filesystems
nodev sysfs
nodev tmpfs
nodev bdev
nodev proc
nodev cgroup
nodev cgroup2
nodev cpuset
nodev devtmpfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev bpf
nodev pipefs
nodev ramfs
nodev hugetlbfs
nodev rpc_pipefs
nodev devpts
ext3
ext2
ext4
vfat
msdos
iso9660
nodev nfs
nodev nfs4
nodev cifs
nodev smb3
nodev autofs
nodev overlay
nodev efivarfs
nodev mqueue
btrfs
exfat
丢失。
有人可以解释一下如何exfat
在我的 yocto 发行版中安装 USB 吗?
最初,mv(1)
这是一项重命名操作;它更新文件系统中的名称,但不复制文件。最近,添加了一项便利功能,即如果源和目标位于不同的文件系统上,它将复制并删除文件。又称为“设备间移动”。
现在我正试图整理我的备份。我想移动.../rest2/Public/Backups
到.../rest2/Backup/(Backups)
,所以:
root@ts412:/QNAP/mounts/rest2# mv Public/Backups Backup/
在哪里:
root@ts412:/QNAP/mounts/rest2# df -h /QNAP/mounts/rest2/Public/
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# df -h /QNAP/mounts/rest2/Backup/
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
因此相同的文件系统:
(仅供参考,rest2
是“剩余的空间disk2
”)
但是移动开始表现得像“设备间移动”(高 CPU、磁盘繁忙、有关非空目录的各种错误等),所以我终止了它。
以稍微不同的方式检查(注意.
):
root@ts412:/QNAP/mounts/rest2# df -h Backup/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# df -h Public/Backups/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2/Public
然后我记得我还有一个绑定挂载(它使通过 NFS 共享的名称更加友好)。所以我卸载了额外的绑定挂载:
root@ts412:/QNAP/mounts/rest2# umount /QNAP/mounts/rest2/Public
root@ts412:/QNAP/mounts/rest2# df -h Public/Backups/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# mv Public/Backups Backup/
mv(1)
正如我所料,它是立即发生的。
因此,尽管有额外的mount(8)
s, 但源和目标始终位于同一文件系统中,这mount -o bind /QNAP/mounts/rest2/Backups /Backups
不会影响这一点。所以我想知道,如果mv(1)
返回/QNAP/mounts/rest2
一个的挂载点和/QNAP/mounts/rest2/Public
另一个的挂载点,它会错误地确定这两个文件位于不同的文件系统上吗?
我正在尝试将用户数据文件添加到映像中,以便在启动时运行 cloud-init。添加用户数据文件后,我会对新映像进行哈希处理以检查是否有更改。我目前遇到一个问题,即文件每次都有不同的哈希值。我不确定这是怎么回事。
以下是我正在运行的命令...
# I have a user-data file and ubuntu.img file
img_name="ubuntu-1.img"
sudo cp ubuntu.img "${img_name}"
sudo losetup --partscan /dev/loop0 "${img_name}"
sudo mount /dev/loop0p1 /mnt/boot
sudo cp user-data /mnt/boot
sudo umount /mnt/boot
sudo losetup --detach /dev/loop0
img_name="ubuntu-2.img"
# repeat above setups using ubuntu-2.img
运行cmp ubuntu-1.img ubuntu-2.img
报告有差异,但我不知道为什么。
有人有什么想法吗?
我可以使用以下命令手动挂载映像文件(包含有效的文件系统):
vnconfig vnd0 file.img
mount /dev/vnd0c /mnt/
问题:我应该把vnconfig
命令放进 OpenBSD 的哪里?
我已更新fstab
以安装该挂载点,但vnconfig
仍然是个谜。我应该把它放在哪里?在启动脚本中吗?
我有两个系统运行在 Ubuntu 22.04 上。我想使用 NFS 将服务器(PC1 - auerbach)的一个磁盘挂载到客户端(PC2 - hubel)上。
PC1 上的文件/etc/exports
如下所示:
/media/auerbach-data 139.124.148.0/25(rw,no_subtree_check,sync,fsid=001)
我sudo exportfs -av
在 PC1 上运行成功。PC2/etc/fstab
上的文件如下所示:
auerbach:/media/auerbach-data /mnt/auerbach-data nfs defaults,auto,rw 0 0
但是,当我sudo mount /mnt/auerbach-data -v
在 PC2 上运行时,出现错误消息:
mount.nfs: timeout set for Thu Nov 28 10:44:02 2024
mount.nfs: trying text-based options 'vers=4.2,addr=139.124.148.27,clientaddr=139.124.148.5'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out
真正奇怪的是,当我在showmount -e
PC1 上运行时,我得到:
Export list for PC1:
/media/auerbach-data 139.124.148.0/25
因此,导出本身似乎有效。然后,当我运行 showmount 时,我得到:
Hosts on PC1:
PC2’s ip
这似乎表明 PC1 看到了 PC2。此外,当我showmount -e auerbach
在 PC2 上运行时,我得到:
Export list for auerbach:
/media/auerbach-data 139.124.148.0/25
经过一番研究来解决这个问题,我使用tcpdump -i eno145 host auerbach
并发现,在mount
PC2 上运行命令时,PC1 没有通过网络收到任何信息。当我ping
使用 PC1 或时,情况并非如此showmount
。下面列出了一些日志:
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eno145, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:52:29.203855 IP hubel.836 > auerbach.nfs: Flags [S], seq 3035191773, win 64240, options [mss 1460,sackOK,TS val 3
448551700 ecr 0,nop,wscale 7], length 0
10:52:30.244579 IP hubel.836 > auerbach.nfs: Flags [S], seq 3035191773, win 64240, options [mss 1460,sackOK,TS val 3
448552741 ecr 0,nop,wscale 7], length 0
有人知道我该如何解决这个问题吗?提前谢谢您!
附加信息:
未打开防火墙auerbach
并且端口 2049 已打开(已使用 检查telnet
)。
当我使用时sudo mount -t nfs auerbach:/media/auerbach-data /mnt/auerbach-data -v
,我得到:
mount.nfs: timeout set for Thu Nov 28 16:53:57 2024
mount.nfs: trying text-based options 'vers=4.2,addr=139.124.148.27,clientaddr=139.124.148.79'
在覆盖整个磁盘之前,我需要确认磁盘的任何部分都未安装。这里的问题是,似乎您必须先知道磁盘上所有文件系统的名称,然后才能单独检查它们,而这通常可能很困难。
举个例子,我正在写这篇文章的系统有一个 SSD,并将parted -l
该磁盘显示为/dev/nvme0n1
,大小为 500G。/dev/block
显示:
lrwxrwxrwx 1 root root 10 Nov 18 12:37 259:0 -> ../nvme0n1
lrwxrwxrwx 1 root root 12 Nov 18 12:37 259:1 -> ../nvme0n1p1
lrwxrwxrwx 1 root root 12 Nov 18 12:37 259:2 -> ../nvme0n1p2
次要编号 0 表示“整个磁盘”,而 1 表示启动分区,2 表示交换分区。此 SSD 设置为 LVM,但 LVM 设备的/dev/mapper
名称完全不同。
当您检查已挂载的文件系统( 、、、 )时,该词nvme0n1
不会出现在任何地方。该词确实会出现,但只是因为它是一个已挂载的启动分区()。通常,我正在查看的磁盘可能没有启动分区,因此搜索前缀可能没有用(即使我找到了具有正确前缀的单词,我是否能保证它在同一个驱动器上?)mount
findmnt nvme0n1
/proc/mounts
/etc/mtab
nvme0n1p1
/boot/efi
nvme0n1
是否有通用方法可以查明磁盘是否“正在使用”?在这种特殊情况下,我可以解析输出lsblk
以查找/dev/mapper
下的名称nvme0n1
,但这似乎不是一个好的长期解决方案。
我目前正在重建 Linux 系统,迁移到新的发行版(Ubuntu 24.04)。
我有一个磁盘,里面有几 TB 的用户数据,我想保留这些数据。该磁盘包含一个带有只读快照的 btrfs 文件系统,这限制了我调整磁盘内容的选项(我无法轻松更改只读快照)。
现在,新的 Linux 发行版默认带有一些组,这些组的 ID 从 1000 开始,并且对系统具有权限。然而,这些组与我在旧安装中使用的组 ID 相同,并且对 btrfs 文件系统具有权限。由于只读快照,我无法轻松更新用户数据上的组 ID。
有人向我指出了 ID 映射的坐骑,但没有关于如何使用它们的有用说明。
我是否可以将文件系统映射为文件系统 gid 1000 对应于系统 gid 1024?我该如何在 /etc/fstab 中输入该内容,以便在启动时挂载文件系统?
使用unshare -Umr
我创建了一个新用户,挂载了调用进程移入的命名空间。然后,我在新的挂载命名空间内的目录树根mount -t tmpfs tmpfs /
上挂载了一个新的 tmpfs 实例。/
由于为tmpfs
空,我希望从命令中看到一个空列表ls -la /
,但是这里是输出:
ubuntu@ubuntu:~$ unshare -Umr /bin/bash
root@ubuntu:~# mount -t tmpfs tmpfs /
root@ubuntu:~# ls -la /
total 5309704
drwxr-xr-x 24 nobody nogroup 4096 Nov 22 2023 .
drwxrwxrwt 2 root root 40 Nov 11 15:47 ..
drwxr-xr-x 2 nobody nogroup 4096 Jan 25 2023 bin
drwxr-xr-x 3 nobody nogroup 4096 Jan 25 2023 boot
drwxr-xr-x 2 nobody nogroup 4096 Nov 11 2019 cdrom
drwxr-xr-x 17 nobody nogroup 3820 Aug 22 14:22 dev
drwxr-xr-x 105 nobody nogroup 4096 Mar 14 2024 etc
-rw-r--r-- 1 root root 1688371200 Jan 19 2021 GISO
drwxr-xr-x 3 nobody nogroup 4096 Nov 11 2019 home
lrwxrwxrwx 1 nobody nogroup 34 Jan 25 2023 initrd.img -> boot/initrd.img-4.15.0-202-generic
lrwxrwxrwx 1 nobody nogroup 34 Jan 25 2023 initrd.img.old -> boot/initrd.img-4.15.0-132-generic
drwxr-xr-x 21 nobody nogroup 4096 Jan 25 2023 lib
drwxr-xr-x 2 nobody nogroup 4096 Jan 25 2023 lib64
drwx------ 2 nobody nogroup 16384 Nov 11 2019 lost+found
drwxr-xr-x 2 nobody nogroup 4096 Feb 10 2021 media
drwxr-xr-x 2 nobody nogroup 4096 Aug 5 2019 mnt
drwxr-xr-x 3 nobody nogroup 4096 Nov 26 2020 opt
dr-xr-xr-x 123 nobody nogroup 0 Aug 22 12:22 proc
drwx------ 4 nobody nogroup 4096 Dec 6 2023 root
drwxr-xr-x 24 nobody nogroup 820 Nov 11 15:20 run
drwxr-xr-x 2 nobody nogroup 12288 Jan 25 2023 sbin
drwxr-xr-x 4 nobody nogroup 4096 Nov 11 2019 snap
drwxr-xr-x 3 nobody nogroup 4096 Jan 24 2020 srv
-rw------- 1 nobody nogroup 3748659200 Nov 11 2019 swap.img
dr-xr-xr-x 13 nobody nogroup 0 Nov 11 15:40 sys
drwxrwxrwt 10 nobody nogroup 4096 Nov 11 15:42 tmp
drwxr-xr-x 10 nobody nogroup 4096 Aug 5 2019 usr
drwxr-xr-x 13 nobody nogroup 4096 Aug 5 2019 var
lrwxrwxrwx 1 nobody nogroup 31 Jan 25 2023 vmlinuz -> boot/vmlinuz-4.15.0-202-generic
lrwxrwxrwx 1 nobody nogroup 31 Jan 25 2023 vmlinuz.old -> boot/vmlinuz-4.15.0-132-generic
root@ubuntu:~#
/
就像在tmpfs 挂载之前挂载的文件系统一样。为什么我会得到这个结果?
我知道unshare -m
创建一个新的挂载命名空间,将执行它的进程移动到正在创建的新挂载命名空间中。
后者获取父级挂载命名空间的副本。确实,请看下面的内容
root@ubuntu:~# cat /proc/self/mountinfo
25 31 0:23 / /sys rw,nosuid,nodev,noexec,relatime shared:7 - sysfs sysfs rw
26 31 0:24 / /proc rw,nosuid,nodev,noexec,relatime shared:12 - proc proc rw
27 31 0:5 / /dev rw,nosuid,relatime shared:2 - devtmpfs udev rw,size=4008708k,nr_inodes=1002177,mode=755,inode64
28 27 0:25 / /dev/pts rw,nosuid,noexec,relatime shared:3 - devpts devpts rw,gid=5,mode=620,ptmxmode=000
29 31 0:26 / /run rw,nosuid,nodev,noexec,relatime shared:5 - tmpfs tmpfs rw,size=812844k,mode=755,inode64
31 1 8:2 / / rw,relatime shared:1 - ext4 /dev/sda2 rw
32 25 0:6 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime shared:8 - securityfs securityfs rw
33 27 0:28 / /dev/shm rw,nosuid,nodev shared:4 - tmpfs tmpfs rw,inode64
34 29 0:29 / /run/lock rw,nosuid,nodev,noexec,relatime shared:6 - tmpfs tmpfs rw,size=5120k,inode64
35 25 0:30 / /sys/fs/cgroup rw,nosuid,nodev,noexec,relatime shared:9 - cgroup2 cgroup2 rw,nsdelegate,memory_recursiveprot
36 25 0:31 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime shared:10 - pstore pstore rw
37 25 0:32 / /sys/fs/bpf rw,nosuid,nodev,noexec,relatime shared:11 - bpf bpf rw,mode=700
38 26 0:33 / /proc/sys/fs/binfmt_misc rw,relatime shared:13 - autofs systemd-1 rw,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=17383
39 27 0:20 / /dev/mqueue rw,nosuid,nodev,noexec,relatime shared:14 - mqueue mqueue rw
40 27 0:34 / /dev/hugepages rw,relatime shared:15 - hugetlbfs hugetlbfs rw,pagesize=2M
41 25 0:7 / /sys/kernel/debug rw,nosuid,nodev,noexec,relatime shared:16 - debugfs debugfs rw
42 25 0:12 / /sys/kernel/tracing rw,nosuid,nodev,noexec,relatime shared:17 - tracefs tracefs rw
---------------------------- output omitted ------------------------------------------
root@ubuntu:~#
root@ubuntu:~# unshare -m /bin/bash
root@ubuntu:~#
root@ubuntu:~# cat /proc/self/mountinfo
714 713 8:2 / / rw,relatime - ext4 /dev/sda2 rw
715 714 0:5 / /dev rw,nosuid,relatime - devtmpfs udev rw,size=4008708k,nr_inodes=1002177,mode=755,inode64
716 715 0:25 / /dev/pts rw,nosuid,noexec,relatime - devpts devpts rw,gid=5,mode=620,ptmxmode=000
719 715 0:28 / /dev/shm rw,nosuid,nodev - tmpfs tmpfs rw,inode64
720 715 0:20 / /dev/mqueue rw,nosuid,nodev,noexec,relatime - mqueue mqueue rw
725 715 0:34 / /dev/hugepages rw,relatime - hugetlbfs hugetlbfs rw,pagesize=2M
726 714 0:26 / /run rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=812844k,mode=755,inode64
739 726 0:29 / /run/lock rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=5120k,inode64
740 726 0:36 / /run/credentials/systemd-sysusers.service ro,nosuid,nodev,noexec,relatime - ramfs none rw,mode=700
741 726 0:26 /snapd/ns /run/snapd/ns rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=812844k,mode=755,inode64
742 726 0:26 /netns /run/netns rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=812844k,mode=755,inode64
743 726 0:46 / /run/user/1000 rw,nosuid,nodev,relatime - tmpfs tmpfs rw,size=812840k,nr_inodes=203210,mode=700,uid=1000,gid=1000,inode64
744 714 0:23 / /sys rw,nosuid,nodev,noexec,relatime - sysfs sysfs rw
745 744 0:6 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime - securityfs securityfs rw
746 744 0:30 / /sys/fs/cgroup rw,nosuid,nodev,noexec,relatime - cgroup2 cgroup2 rw,nsdelegate,memory_recursiveprot
747 744 0:31 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime - pstore pstore rw
748 744 0:32 / /sys/fs/bpf rw,nosuid,nodev,noexec,relatime - bpf bpf rw,mode=700
814 744 0:7 / /sys/kernel/debug rw,nosuid,nodev,noexec,relatime - debugfs debugfs rw
815 744 0:12 / /sys/kernel/tracing rw,nosuid,nodev,noexec,relatime - tracefs tracefs rw
---------------------------- output omitted ------------------------------------------
root@ubuntu:~#
即使挂载点的父子依赖关系相同,输出也略有不同(Ids
由于挂载命名空间不一样,因此前两列预计会有所不同)。
现在的问题是:挂载点的实际显示顺序不同,背后有什么原因吗?