パーティション内のサブパーティションはlsblkまたは/dev/には表示されません。

パーティション内のサブパーティションはlsblkまたは/dev/には表示されません。

私は/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/sdb4sudo mount /dev/loop23p1 [MOUNT_POINT]

これは/dev/loop23単なる例であることに注意してください。コマンドから返された値を使用しますlosetup


説明する:

losetupループデバイスを設定および制御するために使用されるコマンド。

コマンドでsudo losetup --partscan --show --find /dev/sdb4次のタグを指定します。

  • --partscan:指定されたブロックデバイスで使用可能なパーティションを検索します。
  • --showlosetup:出力に割り当てられているループデバイスの名前を知らせるために使用されます。
  • --findlosetup:未使用のループデバイスを見つけて割り当てるオプションです。
  • /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

関連情報