Чтобы иметь четкое разделение опасений за различные задачи (работа, программирование с открытым исходным кодом, играя), не вкладывая капитал в несколько компьютеров, я предпочитаю устанавливать параллельные операционные системы на отдельно зашифрованных разделах.
Список пожеланий, цели:
Используемый ниже шагов для установки трех отдельных систем Ubuntu на одной машине. Работает отлично!
refind
вместо grub
справляться с системным выбором во время Начальной загрузки UEFI/Secure./boot
раздел на экземпляр Linux. Позволить refind
загрузите ядро непосредственно от Системного раздела EFI (ESP).refind
.refind
и удостоверьтесь, что это загружается с Защищенной загрузкой.refind
процесс начальной загрузки.Предполагает, что Таблица разделов GUID (GPT) и ESP были настроены установщиком Windows, и что существуют дополнительные разделы (разделы) или пустое дисковое пространство для экземпляра (экземпляров) Ubuntu.
Для непротиворечивости я буду использовать это именование пути раздела ниже. Пути будут отличаться в Вашей системе и будут варьироваться экземпляром, поэтому сохраните примечания.
/dev/nvme0n1p11
Ваш ESP./dev/nvme0n1p22
Ваш временный файл /boot
раздел./dev/nvme0n1p33
Ваш "физический том на экземпляр для шифрования" (заблокированный) корень /
раздел./dev/mapper/nvme0n1p33_crypt
Ваш (разблокированный) корень /
раздел.sudo apt update && sudo apt dist-upgrade -y
ubiquity --no-bootloader
efi
, ESP. /dev/nvme0n1p11
./dev/nvme0n1p22
./boot
./dev/nvme0n1p33
._crypt
. /dev/mapper/nvme0n1p33_crypt
./
.refind
для нового экземпляра.Войти chroot
к новой операционной системе для внесения большего количества изменений.
# NOTE: create temporary mount directories.
sudo mkdir /mnt/bootpartition /mnt/ospartition
# NOTE: Mount the newly created encrypted partition.
sudo mount -o subvol=@ /dev/mapper/nvme0n1p33_crypt /mnt/ospartition
sudo mount /dev/nvme0n1p22 /mnt/bootpartition
# NOTE: Copy the boot files into the encrypted partition.
# NOTE: Watch those trailing slashes! rsync is very sensitive to them.
sudo rsync -aXAH /mnt/bootpartition/ /mnt/ospartition/boot/
sudo mount /dev/nvme0n1p11 /mnt/ospartition/boot/efi
sudo mount --bind /dev /mnt/ospartition/dev
sudo mount --bind /proc /mnt/ospartition/proc
sudo mount --bind /sys /mnt/ospartition/sys
# NOTE: change root to the newly installed Ubuntu.
sudo chroot /mnt/ospartition
/etc/fstab
и прокомментируйте строку для /boot
. Другие записи корректны.vmlinuz
) и начальный электронный диск (initrd
) для refind
. Не забудьте заменять ubuntu-instance
с чем-то собственным. Я использую "работу человечности" и подобный. Не используйте просто "человечность", поскольку она могла бы быть перезаписана установщиком Ubuntu. # NOTE: Choose your own per-instance directory name.
sudo mkdir /boot/efi/EFI/ubuntu-instance/
sudo cp /boot/vmlinuz* /boot/initrd* /boot/efi/EFI/ubuntu-instance/
/dev/nvme0n1p33
, физический том для шифрования для этого экземпляра. Обратите внимание (или скопируйте в буфер обмена), UUID (но не PARTUUID). sudo blkid
refind
параметры загрузки ядра экземпляра Ubuntu для зашифрованного раздела в refind_linux.conf
. Создать /boot/efi/EFI/ubuntu-instance/refind_linux.conf
от ниже шаблона, но с Вашим путем и UUID. "Boot with standard options" "root=/dev/mapper/nvme0n1p33_crypt cryptdevice=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:nvme0n1p33_crypt ro quiet splash"
"Boot to single-user mode" "root=/dev/mapper/nvme0n1p33_crypt cryptdevice=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:nvme0n1p33_crypt ro single"
"Boot with minimal options" "root=/dev/mapper/nvme0n1p33_crypt cryptdevice=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:nvme0n1p33_crypt ro"
chroot
и перезагрузка. Не забудьте выбирать новое ядро в refind
. exit
sudo reboot
Дополнительный. Это удалит неиспользованные параметры загрузки в refind
. Мне нравится иметь в наличии их как резервное копирование, пока система не устойчива.
# NOTE: The shared Ubuntu Grub EFI loader might be leftover from previous installations.
#sudo rm -r /boot/efi/EFI/ubuntu/
# NOTE: Optionally clean up files from the Ubuntu installer.
#sudo mkdir /mnt/bootpartition
#sudo mount /dev/nvme0n1p22 /mnt/bootpartition
#sudo rm -r /mnt/bootpartition/*
Поскольку Ubuntu не знает о refind
, обновления kernel+driver требуют ручного шага копии для vmlinuz+initrd.
/boot
к незашифрованному ESP ubuntu-instance
как вышеупомянутый.refind
путем выбора пользовательских параметров загрузки./boot
./boot
к ESP ubuntu-instance
как вышеупомянутый.refind
может считать зашифрованные разделы LUKS, исследовать не хранение ядер на незашифрованном ESP. Это могло бы значительно упростить вышеупомянутую установку.ubiquity --no-bootloader
установка пропусков shim-signed
, таким образом, сторонние модули/драйверы DKMS (Nvidia и так далее) требуют руководства, расписывающегося за безопасную начальную загрузку. Это может быть сделано с помощью kmodsign
для /lib/modules/x.y.z/updates/dkms/*.ko
после каждого обновления ядра/драйвера. Более гладкая альтернатива должна установить shim-signed
(включая части grub
), который делает автоматическое подписание. Возможно, существует альтернатива, которая менее неряшлива?refind
./boot
файлы. Не хотел добавленный риск уничтожения ESP путем случайного форматирования его или подобный, но мог бы работать точно также.Спасибо!
refind
.1 Этот Уэйленд плюс проблема с драйвером графики Nvidia поймал меня. Это вызывает черный экран после того, как диск был разблокирован. К счастью легко зафиксировать, и Уэйленд может быть восстановлен, когда-то обновил драйверы Nvidia, были установлены - просто не забывают копировать обновленный kernel+initrd в Ваш ESP.