如何將檔案系統的映像磁碟移至分割區

如何將檔案系統的映像磁碟移至分割區

我有一個 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

那麼您將需要建立多個分割區並為每個分割區重複上述過程(可能使用腳本來自動化流程)。

相關內容