Debian

使用 dropbear 將 luks+lvm 上的加密 debian 系統從單個 SSD 移動到 SSD-RAID1

  • December 13, 2013

我們有一個 debian linux 伺服器,它有一個 120GB SSD 和 2x2TB HDD 作為 RAID 1。我們現在必須移動到另一個有 2x240GB SSD 和一個 2TB HDD 的伺服器。目的是將目前 120GB 系統驅動器 SSD 移動到 240GB RAID1 SSD,並將數據從目前 2TB RAID1 HDD 移動到單個 2TB HDD。

移動 2TB 不會有問題,所以我將我的問題集中在系統驅動器 SSD 上。我們目前的設置有點複雜。120GB SSD 有以下分區:

fdisk -l /dev/sda

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          66      523264   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              66       14594   116696064   83  Linux

fstab 告訴我們:

cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system>                         <mount point>   <type>  <options>       <dump>  <pass>
       proc                            /proc           proc    defaults          0       0
       /dev/mapper/vgdebian-root       /               ext4    errors=remount-ro 0       1
       /dev/mapper/vgdebian-swap       none            swap    sw                0       0
       /dev/sda1                       /boot           ext3    defaults          0       2

因此,帶有核心和帶有 dropbear 的 busybox linux 的引導都在 /dev/sda1 上。然後 dropbear 幫助解密 /dev/sda2 分區,該分區由 cryptsetup 加密並由 LVM 管理。

我不確定將所有 /dev/sda 移動到新創建的 SDD-RAID1 的最佳方法是什麼?我是否應該首先對其中一個新磁碟進行 dd-copy,擴大 /dev/sda2 分區(每個新 SSD 現在都是 240GB 而不是 120GB)並讓 dropbear 知道新的 240GB SSD?然後我應該開始將所有第一個 240GB SDD 複製到第二個並初始化 mdadm create array 命令嗎?

或者我應該在新的 240GB SSD 上創建一個乾淨的 /dev/md0 陣列,然後將整個舊驅動器複製到這個可能是 /dev/md0 命名的設備?

dropbear/busybox 對 RAID 有何反應?可能必須將新的 /dev/sda1 複製到 /dev/sdb1 以便可以從兩個新 SSD 引導 dropbear/busybox。啟動解密的 LVM debian 時,RAID1 將首先存在 - 對嗎?

如果無論如何都可以移動這樣一個加密的系統,也許有人可以給我一些提示。謝謝你的幫助。

編輯: 我通過 dd 命令將所有 120GB 舊 SSD 轉移到新伺服器的新 240GB SSD 之一(此處為:https ://library.linode.com/migration/ssh-copy )。然後我將一些配置更改為 dropbear 並重新組裝 initramfs 並重新啟動 - 系統在新伺服器上照常工作。

現在我需要調整舊 SSD 的圖像大小,所以我將 /dev/sda2 擴大到最大,然後我擴大了物理卷、邏輯捲和文件系統。我重新啟動並且一切正常(tut 這裡:http ://ubuntuforums.org/showthread.php?p=4530641 )。

最後一件事:將整個東西從單個 SSD 移動到 RAID1。有什麼提示嗎?

Edit2: 目前我正在嘗試讓 RAID1 執行。在舊系統在其中一個 240GB SSD 上執行後,我找到了兩個從非 RAID 系統遷移到 RAID1 的教程:pug.org/mediawiki/index.php/Vorhandenes_MD-RAID1_im_laufenden_Betrieb_verschl%C3%BCsseln 和 howtoforge.com/軟體-raid1-grub-boot-debian-etch-p2。兩者都在執行的系統中工作。我將第一個 tut 用於 LUKs 的東西,第二個用於其餘的 - 希望它會成功。

好的,我現在執行它!

在我通過 dd 將舊 SSD 複製到其中一個新 SSD 後,將其大小調整為新的 240GB 大小,如上所述,我只是遇到了初始化 RAID1 的問題。我找到了我的Edit2文章中提到的兩個指南,但實際上是本教程:

http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-lvm-system-incl-grub2-configuration-debian-squeeze-p3

所以我必須設置一個缺少第二個驅動器的新 RAID1(參見 tut),如下所示:

/dev/sdb1  gets  /dev/md0   for   /boot
/dev/sdb2  gets  /dev/md1   for   /

實際上 /dev/md1 保存著 cryptsetup luks 容器,它包含整個 LVM 內容,並且我們擁有實際的文件系統:

/dev/sdb2 -> /dev/md1 -> cryptsetup/LUKS -> LVM -> ext4

創建 md0/md1 後,我將 sda1 與工作 /boot 複製到 md0 上。然後我在 md1 上創建了新的 cryptsetup luks 東西。我將現有的 VGroup 擴展到 md1 並使用 pvmove 將捲組移動到 /dev/md1(這都是 LVM 的東西)。

我需要做一些 chroot’ing 來重新安裝/更新 grub2,但這可能只是我的情況。之後我刪除了整個 /dev/sda 並將其添加到 mdadm,所以它得到了很好的重新同步。

在 2-3 次嘗試後重新啟動工作,整個事情現在再次執行 - 經過 12 小時的工作:)

引用自:https://serverfault.com/questions/560935