Как перенести зашифрованную установку LVM на новый диск

У меня несколько настроенная установка ноутбука, я хочу перейти на SSD напрямую, без необходимости переустанавливать Ubuntu, переустанавливать все приложения и снова вносить все остальные изменения. SSD меньше, поэтому я не могу просто сделать dd.

Первоначальная установка была сделана с помощью альтернативного установщика Ubuntu, выбрав полное шифрование диска с опцией LVM.

Какие шаги требуются и как их выполнить? Я ожидаю:

  • настроить разделы диска, шифрование и т. Д.
  • скопировать данные через
  • install grub и заставить работать с новыми значениями UUID и т. .
14
задан 24 February 2013 в 23:22

5 ответов

Создание разделов и копирование файлов - во время работы

Я сделал это, начав с работающей системы. Я подключил новый SSD к USB-адаптеру SATA, разбил его на части, настроил LVM и скопировал файлы.

# confirm disk size is as expected for sdc
sudo fdisk -l /dev/sdc
# now partition - 500 MB partition as boot, the rest as a single (logical) partition
sudo cfdisk /dev/sdc

Теперь ваш диск должен выглядеть следующим образом:

sudo fdisk -l /dev/sdc
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      979964      489951   83  Linux
/dev/sda2          979965   234441647   116730841+   5  Extended
/dev/sda5          980028   234441647   116730810   82  Linux swap / Solaris

Следующим шагом будет установка шифрования на раздел и LVM поверх шифрования.

sudo cryptsetup -y luksFormat /dev/sdc5
sudo cryptsetup luksOpen /dev/sdc5 crypt
sudo vgcreate crypt-lvm /dev/mapper/crypt
sudo lvcreate -L4G -nswap crypt-lvm
sudo lvcreate -l100%FREE -nroot crypt-lvm

Теперь создайте файловые системы, смонтируйте их и скопируйте всю систему.

sudo mkfs.ext2 /dev/sdc1
# you do ls /dev/mapper to check the name if different
sudo mkfs.ext4 /dev/mapper/crypt-root
sudo mkdir /mnt/boot
sudo mkdir /mnt/root
sudo mount -t ext2 /dev/sdc1 /mnt/boot
sudo mount -t ext4 /dev/mapper/crypt-root /mnt/root

# rsync files
sudo rsync -a /boot/* /mnt/boot/
sudo rsync -aHAX --devices --specials --delete --one-file-system --exclude proc --exclude run --exclude boot --exclude sys --exclude tmp /* /mnt/root/

До этого момента вы можете поддерживать работоспособность системы и использовать ее. Теперь вам нужно завершить работу и загрузиться с live CD / USB, чтобы вы могли перевести систему в состояние выключения.

Создание разделов и копирование файлов - live CD / USB

После загрузки откройте терминал и:

sudo apt-get install lvm2

# mount old hard drive
sudo cryptsetup luksOpen /dev/sda5 sda5_crypt
sudo mkdir /mnt/sdaroot
# you can do ls /dev/mapper to check the name if it is different
sudo mount -t ext4 /dev/mapper/sda5_crypt--root /mnt/sdaroot

# mount new hard drive (over USB)
sudo cryptsetup luksOpen /dev/sdc5 sdc5_crypt
sudo mkdir /mnt/sdcroot
sudo mount -t ext4 /dev/mapper/sdc5_crypt--root /mnt/sdcroot

# final rsync
sudo rsync -aHAX --devices --specials --delete --one-file-system --exclude proc --exclude run --exclude boot --exclude sys --exclude tmp /mnt/sdaroot/* /mnt/sdcroot/

chroot

# prepare chroot
cd /mnt/sdcroot
sudo mkdir boot

# these directories are set up by the system and we need them inside the chroot
sudo mount -t proc proc /mnt/sdcroot/proc
sudo mount -t sysfs sys /mnt/sdcroot/sys
sudo mount -o bind /dev /mnt/sdcroot/dev

# now enter the chroot
sudo chroot /mnt/root/

Изменение UUID [ 1122]

Теперь мы root в chroot и запускаем следующие команды:

# inside chroot, as root
mount -t ext2 /dev/sdc1 /boot
blkid

Теперь вы увидите все UUID для различных дисков в системе. Вам нужно будет отредактировать UUID в /etc/fstab и /etc/crypttab, чтобы они соответствовали значениям для /dev/sdc?

В /etc/fstab вам нужно использовать UUID для загрузочного диска - /dev/sdc1, если ваши диски иметь то же письмо, что и я.

В /etc/crypttab вам нужно использовать UUID для другого (большого) раздела - /dev/sdc5, если ваши диски имеют ту же букву, что и я.

initramfs and grub

# now update initramfs for all installed kernels
update-initramfs -u -k all

# install grub and ensure it is up to date
grub-install /dev/sdc      # NOTE sdc NOT sdc1
update-grub

# hit Ctrl-D to exit chroot
sudo umount /mnt/root

Теперь выключите, поместите SSD в ноутбук, скрестите пальцы и загрузитесь.

Полезные ссылки

Хорошее руководство по работе с cryptsetup на http://www.debian-administration.org/articles/577

Для установки grub внешний раздел: https://stackoverflow.com/questions/247030/how-to-set-up-grub-in-a-cloned-hard-disk

https : //help.ubuntu.com/community/UsingUUID [тысяча сто тридцать восемь]

0
ответ дан 24 February 2013 в 23:22

Я пытался комментировать, но мне не хватает репутации: -)

В любом случае, я успешно использовал удивительное руководство Хэмиша для перехода на ssd на моем рабочем ноутбуке с шифрованием luks. Несколько замечаний:
1. После создания свопа lv также используйте

# mkswap /dev/mapper/crypt-swap 

для инициализации свопа, в противном случае он завершится неудачно во время загрузки, как указано в комментарии выше.
2. Команда rsync слишком ограничительна. Когда я использовал его с --exclude run, я столкнулся со всевозможными странными, обычно невидимыми интернет-ошибками. Прогон должен быть включен . Система в любом случае пуста при загрузке в режиме обслуживания, поэтому она может остаться. Также, если вы исключите tmp, вновь созданные в target / tmp и / var / tmp не получат залипания - не забудьте установить их самостоятельно. В итоге я использовал что-то вроде

# rsync -aHAX --devices --specials --delete --one-file-system --exclude proc --exclude boot /mnt/sdaroot/* /mnt/sdcroot/

В целом - отличное руководство, точно показывающее обзор процесса! Научит, как ловить рыбу, так сказать!

0
ответ дан 24 February 2013 в 23:22

Немного поздно, но вы должны обновить файл /etc/initramfs-tools/conf.d/resume, чтобы отразить изменение подкачки. Без этой модификации вы нарушите функцию гибернации.

0
ответ дан 24 February 2013 в 23:22

[Не мог вставить комментарий, хотя это сообщение принадлежит комментария, а не ответа]

Используя этот метод, Вы могли также переместиться, существующее ** не - ** зашифровало установку lvm на зашифрованной установке lvm на новом диске; Вам просто нужны дополнительные шаги (для установки cryptsetup в то время как chroot'ed в целевой диск), как упомянуто по http://blog.andreas-haerter.com/2011/06/18/ubuntu-full-disk-encryption-lvm-luks, конкретно:

apt-get install lvm2 cryptsetup

Вышеупомянутая команда также устанавливает lvm2 на целевом диске, хотя это является ненужным, было бы полезно, если Вы перемещались не lvm система к lvm системе на Вашем SSD, с помощью Живого CD/DVD. Обратите внимание, что необходимо было бы также скопировать по/etc/resolve.conf в chroot для Вас, чтобы смочь работать склонный - получают установку успешно: это упоминается в URL, упомянутом выше, фрагмент кода:sudo cp /etc/resolv.conf /mnt/sdcroot/etc/resolv.conf

Кроме того, легче сделать CP (использующий другую установку (не из исходной установки, который), например, живой CD/DVD) вместо rsync для / раздел, как описано, в Как переместить Ubuntu в SSD

Необходимо также, возможно, создать использование подкачки mkswap на Вашем /dev/mapper/<swap-name-here> раздел.

Должен также включить поддержку ДЛЯ ОБРЕЗКИ одновременно, как упомянуто по http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html

ПРЕДУПРЕЖДЕНИЕ: Дальнейший текст ниже не для тех, которые используют MBR, которому эта тема/поток, кажется, принадлежит. Я нашел это полезным так или иначе, так отправляю в пользу тех, кто может адаптировать инструкции в этом потоке/теме к их диску GPT.

И для тех, которые используют GPT вместо MBR (использующий parted/gparted и gdisk вместо fdisk), я научился на горьком опыте, что Ваш / раздел начальной загрузки (который не шифруется) не должен быть пронумерован после Вашего устройства удач в порядке GPT. Поскольку я создал раздел ESP после создания начальной загрузки / и разделов устройства удач с помощью gparted, я затем должен был отсортировать числа раздела так, чтобы начальная загрузка / все еще была пронумерована меньше, чем устройство удач.

Как в стороне и не связанный с этим сообщением строго говоря, те, которые используют GPT и UEFI с перенаходкой, повторно находят, возможно, имеет проблемы при представлении Вас список разделов для начальной загрузки от того, если у Вас есть несколько ESPs в Вашей системе, я имею один на диск, таким образом, вместо использования повторно находят, я использую личинку, которая хорошо работает.

0
ответ дан 24 February 2013 в 23:22

Перед разделом initramfs и grub вам может понадобиться:

vgscan
vgchange -a y
0
ответ дан 24 February 2013 в 23:22

Другие вопросы по тегам:

Похожие вопросы: