2つのパーティションを持つ仮想ディスクのパーティションをマウントしようとすると、「マウント」が失敗するのはなぜですか?

2つのパーティションを持つ仮想ディスクのパーティションをマウントしようとすると、「マウント」が失敗するのはなぜですか?

2つのパーティションで構成された仮想ディスクを作成しようとしています。 1つ目は100M FAT(タイプ0xC)、2つ目は2G Linuxパーティション(タイプ83)です。実際のUSBデバイスを使用してこれを正しく実行するプロセスがあります。しかし、USBデバイスを使用する必要がないようにイメージを仮想化したいと思います。下部にリンクされている質問とよく似た質問を見つけましたが、答え(または質問)は、ファイルがホストと共有されているドライブに存在することです。 (これは私が理解したものです。)仮想マシンのディスクに仮想ディスクを作成しているので、この問題を回避したいと思います。

単一パーティションの仮想ディスクを作成、フォーマットし、ファイルを書き込むことができます。問題なく、別々のファイルに両方の種類のパーティションを作成できます。単一の仮想ディスクに2つのパーティションを作成しようとすると、マウントが失敗します。

同じ情報を含むUSBドライブを作成できるように、イメージファイルが必要です。さらに、画像を会社の生産システムにインポートする必要があります。

「mount」のメッセージは次のとおりです。

マウント: 無効なファイルシステムタイプ、無効なオプション、/dev/loop1p1 の無効なスーパーブロック、欠落コードページ、ヘルパー、その他のエラー

dmesg を確認すると、次のメッセージが表示されます。

[79703.646945] FAT-fs(loop1p1): 予約されたセクタの無効な数

[79703.646949] FAT-fs(loop1p1):有効なFATファイルシステムが見つかりません。

fdiskは私が期待するものを示しています:

sudo fdisk -lu

  • /dev/loop1 ディスク /dev/loop1: 2.2 GiB、2306867200 バイト、4505600 セクタ

  • 単位:セクタ1 * 512 = 512バイト

  • セクタサイズ(論理/物理):512バイト/512バイト

  • I/Oサイズ(最小/最適): 512バイト/512バイト

  • ディスクラベルの種類:dos

  • ディスク識別子:0xbe0f04f4

  • デバイスの起動開始および終了セクタサイズIDタイプ

  • /dev/loop1p1 2048 206847 204800100M c W95 FAT32(LBA)

  • /dev/loop1p2 206848 4401151 4194304 2G 83 Linux

私は実行しています:

uname -a

  • Linux xxxxxxxxx 4.15.0-142-一般 #146~16.04.1-Ubuntu SMP 火曜日 4月 13日 09:27:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

ここにも同様の質問があります。

ベストアンサー1

mkfs.* ステップを見逃したようです。 lossup コマンドと /dev/loop0p1 および /dev/loop0p2 が使用可能になったら、パーティションをフォーマットする必要があります。

sudo mkfs.vfat -F 32 -n "BOOT" /dev/loop0p1 
sudo mkfs.vfat -L -n "rootfs" /dev/loop0p2

ほとんどの例では、ディスクイメージはフォーマットされているように見えるため、mkfs.*ステップは言及されていません。

これが将来に役立つことを願っています。

おすすめ記事