將磁碟佈局和分區復製到另一個驅動器
我正在開發一個應用程序,我需要創建具有完全相同分區佈局的驅動器。我最初的想法是用 sfdisk 轉儲原始驅動器的分區表。
sfdisk -d /dev/sdX > parttable
然後將其應用於所有其他驅動器:
sfdisk /dev/sdX < parttable
但這種方法似乎不起作用。我從 USB 驅動器中轉儲了正確的分區表,然後使用 gparted 創建了一些隨機分區,然後嘗試將初始分區表寫回驅動器。
但問題是,分區無法辨識。例如,Gparted 將分區列為未知。我想,我可能必須格式化創建的分區,因為分區表不儲存有關文件系統的資訊。
我現在的問題是:我能否以某種方式保存分區表和有關分區(文件系統等)的資訊並以這種方式創建一個新驅動器(最多在一個命令中)。
順便說一句:msdos 分區表
編輯:另一種方法是自己收集有關驅動器的所有數據(例如,parttable、文件系統)並手動創建命令。是否可以(可能使用 parted)創建分區表並在一個命令中格式化多個分區?
在以下條件下工作:
- 要複製的原始磁碟是
/dev/sdx
- 原始磁碟已正確分區/標記/標記
- 原始磁碟的文件系統內容將被忽略
- 要復製到的目標磁碟將是
/dev/sdy
- 交換分區將是
/dev/sdy4
- 引導分區將
/dev/sdy1
安裝在具有文件系統/boot
的最終系統中ext3
- 根分區將
/dev/sdy2
安裝在具有文件系統/
的最終系統中ext4
- 使用者分區將
/dev/sdy3
安裝在具有文件系統/home
的最終系統中ext4
- 您要複製的 Debian 系統已被 tar 並 gzip 到
master_system.tar.gz
- 所有文件,包括腳本,都將儲存在工作目錄中
- 該腳本將從同一工作目錄執行
- 該腳本將作為 執行
root
,而不sudo
是以 root 身份登錄,或者su
在終端中執行dupe_mnt
工作目錄中有目錄要“複製”原始磁碟的分區結構,只需要一次,除非結構發生變化。
sfdisk --dump /dev/sdx > master_table
由於只有您,在所討論的系統中才能確定要從作為主系統的 Debian 系統中複製什麼,所以我不打算討論這些。我知道您不會複製
/proc
、/dev/
和/sys
目錄,但肯定還有其他要排除的。以您選擇的任何方式創建該存檔,並將其命名為master_system.tar.gz
。這應該包括其中的/boot
和/home
目錄。就是這樣,設置完成,直到您更改要複製的 Debian 系統或磁碟分區。要創建的腳本稱為
sys_replicate.sh
:#!/bin/sh target=$1; sfdisk /dev/${target} < master_table; # Format the swap partition mkswap /dev/${target}4; # Format the data partitions mkfs.ext3 /dev/${target}1; mkfs.ext4 /dev/${target}2; mkfs.ext4 /dev/${target}3; # Mount the target root filesystem and its parts mount /dev/${target}2 dupe_mnt; mount /dev/${target}1 dupe_mnt/boot; mount /dev/${target}3 dupe_mnt/home; # Copy the master system to the target cd dupe_mnt; tar -zxvpf ../master_system.tar.gz; cd ..; # Unmount the new system cd .. umount /dev/${target}3; umount /dev/${target}1; umount /dev/${target}2; #done
該文件
sys_replicate.sh
需要execute
設置位。chmod +x sys_replicate.sh
要使用該過程,一旦設置,連接目標磁碟。如果是 USB,請確保系統已辨識出它可用。如果是內部硬碟,顯然需要重新啟動,系統應該會自動找到它。連接後,請確保您知道
/dev
它是哪個,因為添加磁碟可以重新排列字母。準備就緒後,在root
shell 中執行:
./sys_replicate.sh sdy
設備名稱顯然需要更改以匹配您的作業系統
/dev/sdy
。/dev/sdx
此外,事實證明,它sfdisk
可以處理 GPT 磁碟和擴展分區,因此不需要我之前的評論問題。如果您使用比原始磁碟更大的磁碟作為副本,那麼一切仍然有效。但是,您將浪費無法輕鬆回收的空間,因此請在選擇要複製的主磁碟之前考慮到這一點。分區結構的創建和 Debian 系統的複制是獨立的,因此對其中一個的更改不需要更新另一個。