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

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

Arch Linux がインストールされた linux.img ファイルがあります。仮想マシンで Archlinux を起動するために linux.img ファイルを使用します。新しい PC を入手したので、linux.img を新しい PC に移動し、パーティション ディスクから起動したいと思います。linux.img 内のファイルを失わずに、イメージ ディスク システム ファイル (linux.img) をパーティション ディスクに移動するにはどうすればよいでしょうか。

答え1

linux.img は何のイメージですか?

単一ファイルシステム

ファイルシステムのイメージ(ext4など)の場合は、パーティション(サイズ以上)を作成し、

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

(root として実行するため、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

次に、複数のパーティションを作成し、各パーティションに対して上記の手順を繰り返す必要があります (プロセスを自動化するためにスクリプトを使用する可能性もあります)。

関連情報