Как переместить образ диска файловой системы на раздел

Как переместить образ диска файловой системы на раздел

У меня есть файл 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 (без параметров, кроме ) увеличит размер файловой системы до размера ее раздела.

В качестве альтернативы, если вы хотите только скопировать файлы, создайте новый раздел, смонтируйте его через loopback и используйте два tar и pipe или 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

затем вам нужно будет создать несколько разделов и повторить вышеописанную процедуру для каждого раздела (возможно, используя скрипт для автоматизации процесса).

Связанный контент