web-dev-qa-db-ja.com

何もないところからファイルシステムを作成する

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

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

基本的に、ゼロで満たされた64MBの画像ファイルを作成する必要があります。次に、fdiskを使用して、セクター2048から残りのすべてのセクターを使用して、新しいファイルシステム用の新しいパーティションを作成します。しかし、今私は問題に直面しています。ループデバイスをセットアップし、mkfs -t vfatを使用してフォーマットすると、パーティションテーブルが上書きされ、ファイルシステムがディスクに配置されます。 FAT32でフォーマットされたディスク全体は必要ありません。そのためにはプライマリパーティションが必要です。

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

2
user35443

ルート権限を必要としない1つの解決策は、パーティションのサイズでファイルを作成し、そのファイルでmkfsを呼び出してから、ファイルを所定の場所にコピーすることです。

truncate -s 64512k part1.vfat
/sbin/mkfs.vfat part1.vfat
dd if=part1.vfat of=mountedImage.img bs=1k skip=2048

または、ルート権限を使用して、デバイスとしてイメージにアクセスできる loop device を設定できます。画像の一部のみにアクセスするため、明示的に指定する必要があります。

Sudo losetup -o 2048k --sizelimit 64512k đev/loop0 mountedImage.img
Sudo mkfs.vfat /dev/loop0
Sudo losetup -d /dev/loop0

より快適なツールを使用するには、ルート権限と再起動が必要です。ループモジュールはパーティションへのアクセスを提供できますが、これはデフォルトで無効になっています。このアクセスを有効にするには、/etc/default/grubおよび行を変更GRUB_CMDLINE_LINUX=""

GRUB_CMDLINE_LINUX="loop.max_part=15"

他のオプションが既にある場合は、もちろんそれらを残します。スペースで区切る必要があり、オプション文字列全体を二重引用符で囲む必要があります。 GRUB_CMDLINE_LINUX="option=value anotheroption loop.max_part=15"

ディスクイメージをパーティション分割した後、次を実行します。

Sudo losetup /dev/loop0 mountedImage.img
Sudo mkfs.vfat /dev/loop0p1

実行losetup -d /dev/loop0その画像での作業が終了したとき。

2
Gilles

ファイルシステムイメージファイルは、ディスク全体のバックアップであるか、仮想マシン(QEMUなど)で使用されている場合を除き、通常パーティション化されません。あなたの目的のために、画像ファイル上に直接ファイルシステムを作成したいでしょう。その後、マウントできます。

Sudo mkdosfs mountedImage.img
Sudo mount -o loop mountedImage.img /mnt

その後、このイメージをUSBフラッシュドライブなどに書き込む場合は、パーティションに書き込むことができます。

Sudo dd if=mountedImage.img of=/dev/sdc1
1
Rod Smith

kpartx

Sudo apt-get install kpartx
losetup -fs my.raw
Sudo kpartx -a my.img
ls /dev/mapper

出力:

/dev/mapper/loop0
/dev/mapper/loop0p1

ここで、loop0p1は最初のパーティションなので、次のことができます。

mkdir -p d
Sudo mount /dev/mapper/loop0p1 d

この方法の利点:リブートせずにUbuntu 14.04で動作します。

losetup 2.21 -Pオプション

losetup -P -f --show my.img

パーティションごとに1つの/dev/loopXpYを作成します。

利点:多くのディストリビューションに事前インストールされた実行可能ファイル(util-linuxパッケージ)。

短所:ごく最近のオプションで、Ubuntu 14.04にはありません。