GNU/Linux >> Linux の 問題 >  >> Linux

Linux –フォーマットされたパーティションイメージファイルを最初から作成する方法は?

何もないところから1つのパーティションだけでファイルシステムを作成する必要があります(/dev/zero )。
次の一連のコマンドを試しました:

dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
    n
    p 
    2048
    131072

基本的に、ゼロで埋められた64MBの画像ファイルを作成する必要があります。次に、fdiskを使用します セクター2048から開始して、新しいファイルシステム(最終的にはFAT32になるはずです)用の新しいパーティションを追加します。 残りのすべてのセクターを使用します。

losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1

しかし、ここで私は問題にぶつかっています。 loopを設定した場合 デバイスを作成し、mkfs -t vfatを使用してフォーマットします 、パーティションテーブルが上書きされ、ファイルシステム(FAT32)がディスクに配置されます。 FAT32でフォーマットされたディスク全体は必要ありません。必要なのは、プライマリパーティションだけです。

イメージ全体ではなく、rawディスクイメージの1つのパーティションのみをフォーマットする方法を知っている人はいますか?

承認された回答:

Linuxの場合、loopをロードするとき モジュールの場合は、必ずmax_partを渡してください ループデバイスをパーティション化できるようにするためのモジュールのオプション。

現在の値を確認してください:

cat /sys/module/loop/parameters/max_part

0の場合:

modprobe -r loop # unload the module
modprobe loop max_part=31

この設定を永続的にするには、次の行を/etc/modprobe.confに追加します または/etc/modprobe.dのファイルに そのディレクトリがシステムに存在する場合:

options loop max_part=31

modprobe -r loopの場合 「モジュールループが組み込まれている」ために失敗する場合は、loop.max_part=31を追加する必要があります カーネルコマンドラインに移動して再起動します。ブートローダーがGrub2の場合は、GRUB_CMDLINE_LINUXの値に追加します。 etc/default/grub内 。

これで、パーティション化可能なループデバイスを作成できます。

truncate -s64M file # no need to fill it with zeros, just make it sparse
fdisk file # create partitions
losetup /dev/loop0 file
mkfs.vfat /dev/loop0p1 # for the first partition.
mount /dev/loop0p1 /mnt/

(Linuxの比較的新しいバージョンが必要であることに注意してください。)


Linux
  1. Linuxでスワップスペースを作成または増やす方法

  2. Linuxでスワップを作成する方法

  3. Linuxでスワップファイルを作成する方法

  1. Virshを使用して最初からVmを作成する方法は?

  2. Linux で Windows パーティションのイメージを作成する

  3. フォーマットされたパーティション イメージ ファイルを最初から作成する方法は?

  1. Linuxパーティションまたは論理ボリュームにファイルシステムを作成する方法

  2. Linuxでパスワードで保護されたZIPファイルを作成する方法

  3. ターミナルウィンドウからLinuxでファイルを作成するには?