我在 /dev/sdb4 中安装了 archlinux 并使用了引导分区方案。安装后我无法挂载/dev/sdb4 (ext4)。错误是VFS: Can't find ext4 filesystem
。
lsblk 向我展示:
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 512M 0 part /boot/efi
├─sdb2 8:18 0 768,3G 0 part /
├─sdb3 8:19 0 62,7G 0 part [SWAP]
└─sdb4 8:20 0 100G 0 part
但是 fdisk -l:
Gerät Boot Anfang Ende Sektoren Größe Kn Typ
/dev/sdb4p1 * 6144 421887 415744 203M b W95 FAT32
/dev/sdb4p2 522240 209418239 208896000 99,6G 83 Linux
安装程序在分区内创建了两个子分区。 /dev/sdb4 上的分区表
现在我尝试挂载这些分区:
sudo mount /dev/sdb4p1 /mnt
mount: /mnt: Spezialgerät /dev/sdb4p1 ist nicht vorhanden.
dmesg(1) könnte nach einem fehlgeschlagenen mount-Systemaufruf
weitere Informationen liefern.
我不能。显然/dev/sdb4p1
不存在。我应该怎么办?
答案1
回答
我想我可以通过在文件中安装分区来解决这个问题.img
。
如果我的想法是正确的,那么运行sudo losetup --partscan --show --find /dev/sdb4
应该会创建一个循环设备(例如/dev/loop23
)。
这还应该创建/dev/loop23p1
(分区 1)、/dev/loop23p2
(分区 2) 等,具体取决于 中的分区数量/dev/sdb4
、每个分区可以使用 挂载sudo mount /dev/loop23p1 [MOUNT_POINT]
等。
请注意,这/dev/loop23
只是一个示例。使用命令返回的值losetup
。
解释:
losetup
是用于设置和控制循环设备的命令。
在命令中sudo losetup --partscan --show --find /dev/sdb4
,我们指定以下标签:
--partscan
:这会扫描指定块设备中的可用分区。--show
:这用于告诉losetup
输出它分配的循环设备的名称。--find
:此选项指示losetup
查找未使用的循环设备并分配它。/dev/sdb4
:这是您的块设备/分区的名称。
option的优点在于它会自动扫描所有可用分区,并创建名为、、等的--partscan
子循环设备。您可以像安装整个分区一样安装每个子循环设备。[loop dev]p1
[loop dev]p2
[loop dev]p3
清理
完成安装后,您将必须像往常一样运行sudo umount [MOUNT_POINT]
以卸载已安装的分区。除此之外,我们还必须删除我们创建的循环设备,使用sudo losetup -d [loop dev]
(替换[loop dev]
为之前返回的循环设备名称losetup
。
要确认循环设备已删除,您只需运行即可losetup
。