我的 Ubuntu 媒體伺服器上的磁碟機幾乎已滿。我希望為機器再添加 2TB 容量,並希望所有 3.5 TB 都被識別為單一磁碟機。讓事情變得複雜的是,我不想丟失驅動器上的任何資料或必須重新配置任何程式。
我的計劃是使用 LVM 在新磁碟機上建立磁碟區組,然後使用 dd 複製舊磁碟機的內容。然後我計劃擦除舊磁碟機並將其新增至磁碟區組。
這個計劃會奏效嗎?
我最大的問題是: - dd 是否能夠毫無問題地將我的安裝複製到另一個驅動器?即使它是一個卷組? - dd 是否能夠將 1.5TB 硬碟複製到 2TB 硬碟並保留剩餘空間。
答案1
如果您已經在使用 LVM:
- 確保新磁碟已安裝並針對 LVM 進行分割區(切換 LVM 位元)
- 在新磁碟上建立 PV (
pvcreate /dev/your-new-disk
) - 擴展您的 VG 以包含新的 PV (
vgextend your-volume-group /dev/your-new-disk
) pvmove
將您的資料從舊磁碟轉移到新磁碟。不需要dd
。 (pvmove /dev/your-old-disk
將強制 LVM 將資料從舊磁碟移至任何其他可用磁碟。)
如果您尚未使用 LVM:
- 在新磁碟上建立PV和VG。
- 將資料複製到新 VG 中的新 LV 中。如果您的檔案系統可用,
我會使用dump
+ ,但如果您願意,也可以使用或或。restore
cpio
tar
dd
- 格式化舊磁碟,將其變成PV,加入VG。
以下內容有些自以為是,與LVM無關。
dump
+restore
:- 在原始區塊設備上操作,因此來源
atime
等不受影響,並且ctime
可以正確設定目標等。 - 保留所有硬鏈接,並且應該充分了解檔案系統內部結構,以保留所有擴展屬性、安全性策略和其他檔案系統特定的元資料。
- 來源和目的地可以有不同的大小;僅複製正在使用的資料。
- 應該是最快的方法。
- 在原始區塊設備上操作,因此來源
cpio
/// :tar
rsync
cp
- 在已安裝的檔案系統上操作,因此來源
atime
會更改,目標ctime
無法保留,inode 號碼會更改等。 - 保留硬連結需要將所有已知的索引節點保留在記憶體中,並且可能會也可能不會正確完成。工具可能或可能不充分理解檔案系統,或具有保留擴充屬性、安全性原則和其他特定於檔案系統的元資料的特權。
(例如,ext4 支援亞毫秒時間戳,但據我所知,這些工具都沒有保留它們。) - 來源和目的地可以有不同的大小;只複製指定的資料。
- 在系統呼叫上花費大量時間(、、、、、、、、、、
stat
... )。opendir
readdir
closedir
mkdir
open
read
write
close
- 在已安裝的檔案系統上操作,因此來源
dd
:- 是原始區塊設備的精確副本。
- 複製所有區塊,無論是否正在使用。
- 複製所有檔案系統結構,包括應該唯一的內容(例如 UUID)。
如果它們是 XFS,則無法在同一系統上同時安裝兩者(預設)。 - 複製過程中無法調整大小。
- 如果檔案系統不是很滿,則相對較慢。