使用 dropbear 将 luks+lvm 上的加密 debian 系统从单个 SSD 移动到 SSD-RAID1

使用 dropbear 将 luks+lvm 上的加密 debian 系统从单个 SSD 移动到 SSD-RAID1

我们有一台 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 帮助解密由 cryptsetup 加密并由 LVM 管理的 /dev/sda2 分区。

我不确定将全部 /dev/sda 移动到新创建的 SDD-RAID1 的最佳方法是什么?我是否应该先将 dd 复制到新磁盘之一,扩大 /dev/sda2 分区(每个新 SSD 现在都是 240GB,而不是 120GB)并让 dropbear 知道新的 240GB SSD?然后我是否应该开始将第一个 240GB SDD 的全部复制到第二个 SDD 并初始化 mdadm create array 命令?

或者我应该在新的 240GB SSD 上创建一个干净的 /dev/md0 阵列,然后将整个旧驱动器复制到这个可能名为 /dev/md0 的设备?

dropbear/busybox 会对 RAID 做出什么反应?可能必须将新的 /dev/sda1 复制到 /dev/sdb1,以便 dropbear/busybox 可以从两个新 SSD 启动。启动解密的 LVM debian 时,RAID1 会首先存在 - 我说得对吗?

也许有人可以给我一些提示,看看是否可以移动这样的加密系统。谢谢大家的帮助。

编辑: 我通过 dd 命令将我们旧 SSD 的所有 120GB 转移到新服务器的新 240GB SSD 之一中(此处说明:https://library.linode.com/migration/ssh-copy)。然后我把一些配置改为 dropbear 并重新组装 initramfs 并重新启动 - 系统在新服务器上照常运行。

现在我需要调整旧 SSD 的映像大小,因此我将 /dev/sda2 放大到最大,然后我扩大了物理卷、逻辑卷,后来又扩大了文件系统。我重新启动后,一切正常(tut 如下:http://ubuntuforums.org/showthread.php?p=4530641)。

最后一件事:将整个东西从单个 SSD 移至 RAID1。有人有什么提示吗?

编辑2: 目前我正在尝试让 RAID1 运行起来。在旧系统在其中一个 240GB SSD 上运行后,我找到了两个教程,用于从非 RAID 系统迁移到 RAID1:pug.org/mediawiki/index.php/Vorhandenes_MD-RAID1_im_laufenden_Betrieb_verschl%C3%BCsseln 和 howtoforge.com/software-raid1-grub-boot-debian-etch-p2。这两个教程都可以在运行的系统上运行。我使用第一个教程来处理 LUK 内容,使用第二个教程来处理其余内容 - 希望它能成功。

答案1

好的,我现在可以运行它了!

在我将旧 SSD 通过 dd 复制到新 SSD 之一后,将其调整为新的 240GB 大小(如上所述),我只是遇到了初始化 RAID1 的问题。我找到了我的文章中提到的两个指南編輯2帖子但实际上是这个教程:

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 操作来重新安装/更新 grub2,但这可能只是我的情况。之后我删除了整个 /dev/sda 并将其添加到 mdadm,因此它很好地重新同步了。

尝试 2-3 次后重启成功,经过 12 小时的工作,整个系统现在又可以运行了 :)

相关内容