
Ich habe eine linux.img-Datei, auf der Arch Linux installiert ist. Ich verwende die linux.img-Datei, um Archlinux auf einer virtuellen Maschine zu starten. Ich habe einen neuen PC und möchte die linux.img-Datei auf den neuen PC verschieben und ihn von einer partitionierten Festplatte starten. Wie verschiebe ich die Image-Festplattensystemdatei (linux.img) auf eine partitionierte Festplatte, ohne die Dateien in der linux.img-Datei zu verlieren?
Antwort1
Wovon ist linux.img ein Image?
Einzelnes Dateisystem
Wenn es sich um ein Image eines Dateisystems (z. B. ext4) handelt, können Sie eine Partition (mit einer Größe größer oder gleich) erstellen und verwenden
dd if=linux.img of=<new partition> bs=4M
resize2fs <new partition> # if needed
(als Root, daher benötigen Sie möglicherweise sudo). Der Befehl resize2fs (ohne Optionen außer ) vergrößert das Dateisystem so, dass es in die Partition passt.
Wenn Sie alternativ nur die Dateien kopieren möchten, erstellen Sie eine neue Partition, mounten Sie sie über Loopback und verwenden Sie zwei Tars und eine Pipe oder rsync.
Beispiel 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 - )
Beispiel 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/
Bild des partitionierten Laufwerks
Wenn es sich bei linux.img jedoch um das Image eines partitionierten Laufwerks handelt, also um etwas, das durch einen Befehl wie
dd if=/dev/sdb of=my.img bs=4M
dann müssen Sie mehrere Partitionen erstellen und das obige Verfahren für jede Partition wiederholen (ggf. mithilfe eines Skripts, um den Vorgang zu automatisieren).