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

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

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

3 ответа

Решение

Прежде всего, если вы хотите установить 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, выделен по кругу справа:

    GParted скриншот

  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 >"$1"' _ /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 с помощью графического установщика (ярлык находится на рабочем столе в Xubuntu 18.04), выбрав ручное разбиение. приписывать / в /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 в изолированной среде, чтобы содержать эту строку, заменяя значение 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. Выполните следующую команду в изолированной среде:

    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. Установите все обновления, которые могут перестроить виртуальный диск и обновить конфигурацию grub. Перезагрузите и протестируйте как обычный режим, так и режим восстановления.

Вот несколько инструкций о том, что я только что сделал с Dell Inspiron 5000.

Я попробовал выбранный ответ, но он не работал для меня после выполнения dist-upgrade и update-grub (чтобы добавить окна в мой grubconf).

Можно выполнить двойную загрузку, чтобы установить Ubuntu 18.10 с Windows 10, и вам не нужно выполнять все функции командной строки или использовать режим Ubuntu LiveUSB.

Из Windows

  • в типе стартовой панели disk partition и выберите первый вариант (открытие диспетчера разделов диска в настройках)

  • уменьшите ваш основной раздел до желаемого размера Ubuntu (я просто использовал стандартное разделение моего 500-гигабайтного диска на операционную систему Windows 240 ГБ и нераспределенную 240 ГБ)

Из биоса

  • отключить безопасную загрузку (если у вас есть битлокер, вам нужно будет включать его для безопасной загрузки в Windows каждый раз) - это хорошо для меня, так как Ubu - моя основная ОС, просто используйте windoze для игр.

Наконец - загрузитесь в установщик USB 18.10

  • Нажмите Enter, чтобы установить опцию Ubuntu по умолчанию.

  • Когда вы попадаете на экран с надписью "стереть весь диск" и с некоторыми флажками, нажмите "Что-то еще" (ручное разбиение). Если вы нажмете ERASE ENTIRE DISK, то замените установку Windows, не делайте этого!

Как только менеджер дисковых разделов загрузит ваш диск, у вас будет большое нераспределенное пространство

Нажмите на это и нажмите кнопку Добавить, чтобы создать разделы.

- First, create a 500MB /boot partition
- Second, with the rest of the space make a encrypted volume
--- This will create a single LV partition
------ Modify it to be the selected root “/” partition
- Then the rest of the install process will work like usual. relax.

После первой загрузки выполните обновление apt-get и dist-upgrade, затем перезагрузите компьютер.

Файл подкачки объемом 2 ГБ будет создан автоматически, если вы хотите использовать файл подкачки объемом 8 ГБ, прочитайте этот /questions/293234/kak-mne-uvelichit-razmer-fajla-podkachki-ne-udalyaya-ego-v-terminale/293245#293245

Прежде всего, укажите, почему только шифрование раздела Linux может быть недостаточно безопасным для вас:

  1. https://superuser.com/questions/1013944/encrypted-boot-in-a-luks-lvm-ubuntu-installation
  2. https://security.stackexchange.com/questions/166075/encrypting-the-boot-partition-in-a-linux-system-can-protect-from-an-evil-maid-a
  3. https://www.reddit.com/r/linux/comments/6e5qlz/benefits_of_encrypting_the_boot_partition/
  4. https://unix.stackexchange.com/questions/422860/why-should-we-encrypt-the-system-partition-and-not-only-home
  5. https://www.coolgeeks101.com/howto/infrastructure/full-disk-encryption-ubuntu-usb-detached-luks-header/
  6. https://superuser.com/questions/1324389/how-to-avoid-encrypted-boot-partition-password-prompt-in-lvm-arch-linux

Теперь я следовал этому уроку:

  1. https://www.oxygenimpaired.com/multiple-linux-distro-installs-on-a-luks-encrypted-harddrive
  2. http://web.archive.org/web/20160402040105/http://www.oxygenimpaired.com/multiple-linux-distro-installs-on-a-luks-encrypted-harddrive

На этот ответ я представляю пошаговую (с картинками) установку Linux Mint 19.1 XFCE а также Ubuntu 18.04.2, оба полностью зашифрованы на одном диске. Сначала я установил Ubuntu 14.04.2 на /dev/sda5 и я не создавал разделы подкачки, потому что Linux Mint 19.1 а также Ubuntu 18.04.2 не используйте их, т. е. они используют файлы подкачки.

Ubuntu 18.04.2 Бионический Бобр

Сначала вставьте Ubuntu установочный носитель и перезагрузите компьютер в Ubuntu живой сеанс, затем выберите Try Ubuntu и откройте один терминал, затем

  1. sudo su -
  2. fdisk /dev/sda затем создайте следующие разделы
  3. cryptsetup luksFormat /dev/sda5
  4. cryptsetup luksOpen /dev/sda5 sda5_crypt
  5. pvcreate /dev/mapper/sda5_crypt
  6. vgcreate vgubuntu /dev/mapper/sda5_crypt
  7. lvcreate -L10G -n ubuntu_root vgubuntu
  8. lvcreate -l 100%FREE -n ubuntu_root vgubuntu
  9. Не закрывайте терминал, а откройте установщик дистрибутива, выберите что-то еще и установите его с
    • /dev/sda1 установлен как /boot раздел с ext2 формат
    • /dev/mapper/vgubuntu-ubuntu_root установлен как / с ext4 формат.
    • /dev/sda как установка загрузчика
    • Не помечай больше ничего
  10. Не перезагружайтесь, нажмите "Продолжить использование Linux" и выберите открытый терминал.
  11. mkdir /mnt/newroot
  12. mount /dev/mapper/vgubuntu-ubuntu_root /mnt/newroot
  13. mount -o bind /proc /mnt/newroot/proc
  14. mount -o bind /dev /mnt/newroot/dev
  15. mount -o bind /dev/pts /mnt/newroot/dev/pts
  16. mount -o bind /sys /mnt/newroot/sys
  17. cd /mnt/newroot
  18. chroot /mnt/newroot
  19. mount /dev/sda1 /boot
  20. blkid /dev/sda5 (скопируйте UUID без кавычек и используйте его на следующем шаге)
  21. echo sda5_crypt UUID=5f22073b-b4ab-4a95-85bb-130c9d3b24e4 none luks > /etc/crypttab
  22. Создать файл /etc/grub.d/40_custom
  23. редактировать /etc/default/grub и установить
    • GRUB_TIMEOUT_STYLE=menu
    • GRUB_TIMEOUT=10
  24. update-initramfs -u
  25. update-grub
  26. exit
  27. reboot
  28. После перезагрузки компьютера выберите опцию Ubuntu и он будет правильно запрашивать ваш пароль шифрования
  29. После того, как вы вошли в систему, запустите
    • sudo apt-get update
    • sudo apt-get install gparted
  30. И, открыв gparted вы найдете это

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


Linux Mint 19.1 Корица

Для остальных установок Linux reboot ваш Ubuntu машина, загрузиться с Mint 19.1 (Live CD) и откройте окно терминала

  1. sudo su -
  2. cryptsetup luksFormat /dev/sda6
  3. cryptsetup luksOpen /dev/sda6 sda6_crypt
  4. pvcreate /dev/mapper/sda6_crypt
  5. vgcreate vgmint /dev/mapper/sda6_crypt
  6. lvcreate -L10G -n mint_root vgmint
  7. lvcreate -l 100%FREE -n mint_root vgmint
  8. Не закрывайте терминал, а откройте установщик дистрибутива, выберите что-то еще и установите его с
    • /dev/sda2 установлен как /boot раздел с ext2 формат
    • /dev/mapper/vgmint-mint_root установлен как / с ext4 формат.
    • /dev/sda2 в качестве установки загрузчика (не выбирайте /dev/sda как прежде)
    • Не помечай больше ничего
  9. Не перезагружайтесь, нажмите "Продолжить использование Linux" и выберите открытый терминал.
  10. mkdir /mnt/newroot
  11. mount /dev/mapper/vgmint-mint_root /mnt/newroot
  12. mount -o bind /proc /mnt/newroot/proc
  13. mount -o bind /dev /mnt/newroot/dev
  14. mount -o bind /dev/pts /mnt/newroot/dev/pts
  15. mount -o bind /sys /mnt/newroot/sys
  16. cd /mnt/newroot
  17. chroot /mnt/newroot
  18. mount /dev/sda2 /boot
  19. blkid /dev/sda6 (скопируйте UUID без кавычек и используйте его на следующем шаге)
  20. echo sda6_crypt UUID=5f22073b-b4ab-4a95-85bb-130c9d3b24e4 none luks > /etc/crypttab
  21. update-initramfs -u
  22. update-grub
  23. exit
  24. reboot
  25. После перезагрузки компьютера выберите опцию Linux Mint on /dev/sda2
  26. Тогда он будет правильно запускаться Mint 19.1 и попросил пароль для шифрования
  27. После того, как вы вошли в систему, запустите
    • sudo apt-get update
    • sudo apt-get install gparted
  28. И, открыв gparted вы найдете это

Ссылки по теме:

  1. Как я могу изменить размер активного раздела LVM?
  2. Как я могу изменить размер раздела LVM? (то есть: физический объем)
  3. https://www.tecmint.com/extend-and-reduce-lvms-in-linux/
  4. Grub chainloader не работает с Windows 8
  5. Загрузка UEFI с шифрованием / boot в Ubuntu 14.04 LTS

Добавление еще одного ответа здесь, поскольку многие другие ресурсы, которые я нашел (здесь и в других местах), немного устарели, и я думаю, что некоторые из шагов можно упростить.

Во-первых, как упоминалось в других ответах, если вы не хотите использовать двойную загрузку, просто выберите параметр шифрования в автоматическом установщике.

Стоит отметить, что этот метод не шифрует /boot. Хотя есть веские причины для шифрования /boot, графический установщик не шифрует его, когда вы выполняете графическую установку с помощью LUKS. Таким образом, я соответствую этому прецеденту и сохраняю простоту незашифрованного /boot раздел.


Ubuntu 20.04 и Windows 10

В этом руководстве я буду ссылаться на /dev/sda. Ваш может быть другим - в частности, это может быть /dev/nvme0n1. Просто сделайте соответствующие замены ниже, отмечая также, что /dev/sda1 будет соответствовать /dev/nvme0n1p1.1

Разделение может быть выполнено с помощью GParted, sgdisk или gdisk. На sgdisk проще всего ссылаться как на команды.

  1. Настройте BIOS только для UEFI. Нет MBR, нет устаревшей загрузки.2
  2. Инициализируйте диск как диск GPT и создайте системный раздел EFI 550M, отформатированный как FAT32 (как root).
    # sgdisk --zap-all /dev/sda
    # sgdisk --new=1:0:+550M /dev/sda
    # sgdisk --change-name=1:EFI /dev/sda
    # sgdisk --typecode=1:ef00 /dev/sda
    # mkfs.fat -F 32 /dev/sda1
    
  3. Установите Windows. В программе установки выберите создание нового раздела для Windows и сделайте его подходящего размера (примерно половину жесткого диска). Оставьте нераспределенное пространство для использования позже для Ubuntu. Когда вы это сделаете, установщик фактически создаст несколько разделов по причинам Windows.
  4. При желании после завершения установки Windows включите BitLocker на вашем компьютере. C:водить машину. Это сделает еще один раздел.
  5. Сделайте разделы для Ubuntu (как root). Раздел 768M предназначен для /boot. Другой предназначен для Ubuntu и будет зашифрован с помощью LUKS и будет использовать LVM (аналогично тому, как его настраивает процесс установки по умолчанию). (Если вы не настраивали BitLocker раньше, номера ваших разделов будут отличаться на 1 из моего примера ниже (так что мой sda5 - это ваш sda4).
    # sgdisk --new=5:0:+768M /dev/sda
    # sgdisk --new=6:0:0 /dev/sda
    # sgdisk --change-name=5:/boot --change-name=6:rootfs /dev/sda
    # sgdisk --typecode=5:8301 --typecode=6:8301 /dev/sda
    # mkfs.ext4 -L boot /dev/sda5
    
  6. Установите LUKS и LVM (как root). Я сделал 8G места подкачки. Хорошее практическое правило - это количество оперативной памяти в вашей системе. Своп будет зашифрован.
    # cryptsetup luksFormat --type=luks1 /dev/sda6
    # cryptsetup open /dev/sda6 sda6_crypt
    
    # pvcreate /dev/mapper/sda6_crypt 
    # vgcreate ubuntu-vg /dev/mapper/sda6_crypt 
    # lvcreate -L 8G -n swap_1 ubuntu-vg 
    # lvcreate -l 100%FREE -n root ubuntu-vg
    
  7. Установите Ubuntu с помощью графического установщика. Выбирайте перегородки сами.
    • /dev/sda5 в качестве ext4 за /boot
    • /dev/mapper/ubuntu--vg-root в качестве ext4 за /
    • /dev/mapper/ubuntu--vg-swap_1 в качестве swap
    • Устройство загрузчика должно быть /dev/sda
  8. Когда установщик завершит работу, не выходите. Нам нужно настроить /etc/crypttab(как root). Это то, что вызовет запрос парольной фразы при загрузке. Замените UUID в файле на UUID вашего диска, полученный из sudo blkid /dev/sda6
    # mount /dev/mapper/ubuntu--vg-root /target
    # mount /dev/sda5 /target/boot
    # for n in proc sys dev etc/resolv.conf; do mount --rbind /$n /target/$n; done 
    # chroot /target
    # mount -a
    
    # echo 'sda6_crypt UUID=abcdefgh-1234-5678-9012-abcdefghijklm none luks,tries=0,discard,loud' > /etc/crypttab
    # update-initramfs -k all -c
    

Выполнено! Если вы используете BitLocker в Windows, ему не понравится загружаться с помощью grub. Вместо этого загрузитесь непосредственно в Windows из параметров загрузки BIOS.

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