私は/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
インストーラは、パーティション内に2つのサブパーティションを作成します。 /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)、(パーティション2)などを作成する必要があります。/dev/loop23p2
/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
:ブロックデバイス/パーティションの名前。
オプションの利点は、利用可能なすべてのパーティションを自動的に検索し、等という名前のサブサイクル--partscan
デバイスを作成することです。完全パーティションであるかのように、各サブループデバイスをマウントできます。[loop dev]p1
[loop dev]p2
[loop dev]p3
掃除する
sudo umount [MOUNT_POINT]
インストールが完了したら、通常どおりに実行してマウントされたパーティションをアンマウントする必要があります。これに加えて、sudo losetup -d [loop dev]
([loop dev]
以前に返されたループデバイス名に置き換えます)を使用して作成したループデバイスも削除する必要がありますlosetup
。
ループデバイスが削除されたことを確認するには、を実行しますlosetup
。