当我创建一个名为 /tmp/foo 的 400MB 文件,然后调用 时losetup -f /tmp/foo
,这会创建一个循环设备/dev/loop15
。如果我对 Loopdevice 进行分区并将其格式化为分别包含 ext4、ntfs 和 fat32 文件系统,然后运行 lsblk,我会得到以下结果:
loop15 7:15 0 390,6M 0 loop
├─loop15p1 259:8 0 100M 0 part
├─loop15p2 259:9 0 200M 0 part
└─loop15p3 259:10 0 83M 0 part
/etc/dev 下有loop15、loop15p1、loop15p2 和loop15p3。
但是在调用losetup -d /dev/loop15
取消绑定循环设备后,然后回忆losetup -f /tmp/foo
重新绑定它,然后在运行 gparted 或 KDE 磁盘管理器时,都显示设备上有 3 个分区,但它们都未格式化。如果我运行lsblk -f
或ls /dev/loop*
看到/dev/loop15
,但分区消失了。
有没有办法使文件系统在取消/绑定时保持不变?如何将块设备节点恢复到分区(loop15p1、loop15p2、loop15p3...)?
答案1
您需要losetup
使用-P
/运行--partscan
来告诉内核扫描设备上的分区,默认情况下不会为循环设备启用它,因此如果没有此选项,则不会创建分区设备节点。