Как установить Ubuntu в зашифрованном виде с помощью LUKS с двойной загрузкой?

49

Установочный диск Ubuntu 13.04 имеет возможность установить Ubuntu в зашифрованном виде с использованием LUKS. Тем не менее, нет возможности выполнить зашифрованную установку существующих существующих разделов для сценария с двойной загрузкой.

Как установить Ubuntu зашифрованным рядом с другим разделом с живого диска?

    
задан Flimm 09.05.2013 в 14:44
источник

1 ответ

65

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

Этот ответ был протестирован с Ubuntu 13.04.

  1. Загрузитесь с DVD-диска или USB-накопителя Ubuntu и выберите «Попробовать Ubuntu».

  2. Создайте два раздела, используя GParted, включенные в живой диск. Первый раздел должен быть неформатирован и должен быть достаточно большим для root и swap, в моем примере это /dev/sda3 . Второй раздел должен быть в несколько сотен мегабайт большой и отформатирован в ext2 или ext3, он будет незашифрован и установлен на /boot (в моем примере это /dev/sda4 ).

    На этом скриншоте у меня есть существующая незашифрованная установка Ubuntu в двух разделах: /dev/sda1 и /dev/sda5 , выделить в круге влево. Я создал неформатированный раздел в /dev/sda3 и раздел ext3 в /dev/sda4 , предназначенный для зашифрованной установки Ubuntu, подсвеченный по кругу справа:

  3. Создайте контейнер LUKS с помощью этих команд. Замените /dev/sda3 на неформатированный раздел, созданный ранее, и cryptcherries с именем по вашему выбору.

    sudo cryptsetup luksFormat /dev/sda3
    sudo cryptsetup luksOpen /dev/sda3 cryptcherries
    
  4. Предупреждение . Вы заметите, что шаг luksFormat завершился очень быстро, поскольку он не безопасно удаляет базовое блочное устройство. Если вы просто не экспериментируете и не заботитесь о безопасности против различных видов судебной атаки, крайне важно правильно инициализировать новый контейнер LUKS, прежде чем создавать в нем файловые системы. Написание нулей в отображаемом контейнере приведет к записи сильных случайных данных на базовое блочное устройство. Это может занять некоторое время, поэтому лучше всего использовать команду pv для отслеживания прогресса:

    sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
    sudo apt-get update
    sudo apt-get install -y pv
    sudo sh -c 'exec pv -tprebB 16m /dev/zero >""' _ /dev/mapper/cryptcherries
    

    или, если вы выполняете автономную установку и не можете легко получить pv :

    sudo dd if=/dev/zero of=/dev/mapper/cryptcherries bs=16M
    
  5. Внутри установленного контейнера LUKS создайте физический том LVM, группу томов и два логических тома. Первый логический том будет установлен на / , а второй будет использоваться в качестве свопа. vgcherries - это имя группы томов, а lvcherriesroot и lvcherriesswap - это имена логических томов, вы можете выбрать свой собственный.

    sudo pvcreate /dev/mapper/cryptcherries
    sudo vgcreate vgcherries /dev/mapper/cryptcherries
    sudo lvcreate -n lvcherriesroot -L 7.5g vgcherries
    sudo lvcreate -n lvcherriesswap -L 1g vgcherries
    
  6. Создайте файловые системы для двух логических томов: (Вы также можете сделать этот шаг непосредственно из установщика.)

    sudo mkfs.ext4 /dev/mapper/vgcherries-lvcherriesroot
    sudo mkswap /dev/mapper/vgcherries-lvcherriesswap
    
  7. Установите Ubuntu с помощью графического установщика, выбрав ручное разделение. Назначьте / в /dev/mapper/vgcherries-lvcherriesroot и /boot в незашифрованный раздел, созданный на шаге 2 (в этом примере, /dev/sda4 ).

  8. После завершения графического инсталлятора выберите «продолжить тестирование» и откройте терминал.

  9. Найти UUID разделов LUKS ( /dev/sda3 в этом случае), вам понадобится это позже:

    $ sudo blkid /dev/sda3
    /dev/sda3: UUID="8b80b3a7-6a33-4db3-87ce-7f126545c74af" TYPE="crypto_LUKS"
    
  10. Подключите соответствующие устройства к соответствующим местам в /mnt и вставьте в него:

    sudo mount /dev/mapper/vgcherries-lvcherriesroot /mnt
    sudo mount /dev/sda4 /mnt/boot
    sudo mount --bind /dev /mnt/dev
    sudo chroot /mnt
    > mount -t proc proc /proc
    > mount -t sysfs sys /sys
    > mount -t devpts devpts /dev/pts
    
  11. Создайте файл с именем /etc/crypttab в chrooted среде, чтобы содержать эту строку, заменив значение UUID на UUID раздела LUKS и vgcherries с именем группы томов:

    # <target name> <source device> <key file> <options>
    cryptcherries UUID=8b80b3a7-6a33-4db3-87ce-7f126545c74af none luks,retry=1,lvm=vgcherries
    
  12. Выполните следующую команду в среде chrooted:

    update-initramfs -k all -c
    
  13. Перезагрузитесь и загрузитесь в зашифрованный Ubuntu. Вам будет предложено ввести пароль.

  14. Убедитесь, что вы используете зашифрованный раздел для / , запустив mount :

    $ mount
    /dev/mapper/vgcherries-lvcherriesroot on / type ext4 (rw,errors=remount-ro)
    /dev/sda4 on /boot type ext3 (rw)
    # rest of output cut for brevity
    
  15. Убедитесь, что вы используете зашифрованный раздел подкачки (не любые незашифрованные разделы подкачки из любой другой установки), выполнив следующую команду:

    $ swapon -s
    Filename                              Type      Size   Used Priority
    /dev/mapper/vgcherries-lvcherriesswap partition 630780 0    -1
    
  16. Убедитесь, что вы можете загрузиться в режим восстановления, вы не хотите позже выяснять, что режим восстановления не работает:)

  17. Установите все обновления, которые могут перестроить ramdisk и обновить конфигурацию grub. Перезагрузите и проверьте как нормальный режим, так и режим восстановления.

ответ дан Flimm 09.05.2013 в 14:44
источник