
我有一個 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
那麼您將需要建立多個分割區並為每個分割區重複上述過程(可能使用腳本來自動化流程)。