如何将文件系统的映像磁盘移动到分区

如何将文件系统的映像磁盘移动到分区

我有一个 linux.img 文件,上面安装了 Arch Linux。我使用 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

(作为root,所以你可能需要sudo)。 resize2fs 命令(除了 之外没有任何选项)将扩展该文件系统以适应其分区。

或者,如果您只想复制文件,请创建一个新分区,通过环回挂载,并使用两个 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

那么您将需要创建多个分区并为每个分区重复上述过程(可能使用脚本来自动化该过程)。

相关内容