ファイルシステムのイメージディスクをパーティションに移動する方法[閉じる]

ファイルシステムのイメージディスクをパーティションに移動する方法[閉じる]

Arch Linuxがインストールされているlinux.imgファイルがあります。私はlinux.imgファイルを使って仮想マシンからArchlinuxを起動します。新しいコンピュータがあり、linux.imgを新しいコンピュータに移動してパーティションディスクから起動したいと思います。 linux.imgのファイルを失うことなくイメージディスクシステムファイル(linux.img)をパーティションディスクに移動するには?

答え1

linux.imgはどんなイメージですか?

単一ファイルシステム

ファイルシステム(ext4など)のイメージの場合は、パーティション(サイズが大きいか等しい)を作成して次のものを使用できます。

dd if=linux.img of=<new partition> bs=4M
resize2fs <new partition> # if needed

(ルートとしてsudoが必要な場合があります)。 resize2fsコマンド(以外のオプションはありません)は、パーティションに合わせてファイルシステムを拡張します。

または、ファイルのみをコピーするには、新しいパーティションを作成してループバックを介してマウントし、2つのtarとパイプまたはrsyncを使用します。

実施例1

sudo -s # ensure we are running as root
mkdir /tmp/a
mkdir /tmp/b
mount -o loop linux.img /tmp/a
mount /dev/sdx1 /tmp/b # where sdx1 is the target partition
cd /tmp
( cd a; tar cf -) | ( cd b; tar xvf - )

実施例2

sudo -s # ensure we are running as root
mkdir /tmp/a
mkdir /tmp/b
mount -o loop linux.img /tmp/a
mount /dev/sdx1 /tmp/b # where sdx1 is the target partition
rsync -haux /tmp/a/ /tmp/b/

パーティションドライブイメージ

しかし、linux.imgがパーティションドライブのイメージであればどうでしょうか?つまり、次のような画像を得ることができる。

dd if=/dev/sdb of=my.img bs=4M

その後、複数のパーティションを作成し、各パーティションに対して上記のプロセスを繰り返す必要があります(プロセスを自動化するスクリプトを使用することもできます)。

関連情報