我是一名 Ubuntu 新手,正在尝试使用 Windows 10 和 Ubuntu 18.04 进行加密双启动。对于 Ubuntu 安装,我遵循了一些指南,其中使用可启动 USB 对分区进行加密,并在不安装它的情况下启动 Ubuntu,例如:
- https://www.mikekasberg.com/blog/2020/04/08/dual-boot-ubuntu-and-windows-with-encryption.html和
- 如何安装使用 LUKS 加密并双启动的 Ubuntu?。
这两个指南都告诉您在安装后留在 USB 环境中完成最后的步骤。最后一个是update-initramfs -k all -c
在 chroot 环境中运行。
每次我尝试运行它时,Ubuntu 都会告诉我:
update-initramfs is disabled since running on read-only media.
我试过sudo
,但没有用。我还试过live-update-initramfs
,但它不存在,使用 进行安装apt get
也没有用。
这是我第三次尝试安装加密的 Ubuntu 分区,但我真的搞不懂,真的很感谢大家的帮助。
编辑:由于看起来逻辑卷的创建可能是问题所在,所以这里是我在安装之前一直遵循的步骤,这次是从上面提到的第二个教程开始的。
ubuntu@ubuntu:~$ sudo cryptsetup luksFormat /dev/nvme0n1p5
WARNING!
========
This will overwrite data on /dev/nvme0n1p5 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase for /dev/nvme0n1p5:
Verify passphrase:
ubuntu@ubuntu:~$ sudo cryptsetup luksOpen /dev/nvme0n1p5 nvme0n1p5_crypt
Enter passphrase for /dev/nvme0n1p5:
ubuntu@ubuntu:~$ sudo pvcreate /dev/mapper/nvme0n1p5_crypt
Physical volume "/dev/mapper/nvme0n1p5_crypt" successfully created.
ubuntu@ubuntu:~$ sudo vgcreate ubuntu-vg /dev/mapper/nvme0n1p5
Device /dev/mapper/nvme0n1p5 not found.
ubuntu@ubuntu:~$ sudo vgcreate ubuntu-vg /dev/mapper/nvme0n1p5_crypt
Volume group "ubuntu-vg" successfully created
ubuntu@ubuntu:~$ sudo lvcreate -n swap_1 -L 16g ubuntu-vg
Logical volume "swap_1" created.
ubuntu@ubuntu:~$ sudo lvcreate -n root -L 290g ubuntu-vg
Logical volume "root" created.
ubuntu@ubuntu:~$ sudo mkfs.ext4 /dev/mapper/ubuntu--vg-root
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 76021760 4k blocks and 19005440 inodes
Filesystem UUID: 79a0b577-0e14-444f-9bac-816bebd67be4
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
ubuntu@ubuntu:~$ sudo mkswap /dev/mapper/ubuntu--vg-swap_1
Setting up swapspace version 1, size = 16 GiB (17179865088 bytes)
no label, UUID=4552fc09-0e77-4eab-a379-e221d83b0e3f
ubuntu@ubuntu:~$
以下是我在安装后应用的命令,其中我选择了“其他”,并根据教程分配了卷。这次命令update-initramfs
成功了,但给出了一些警告。
ubuntu@ubuntu:~$ sudo blkid /dev/nvme0n1p5
/dev/nvme0n1p5: UUID="db4b0e02-96ab-438b-8961-b0c8ad6ad65c" TYPE="crypto_LUKS" PARTUUID="80424d8a-ad5f-4c59-bacd-5979d2a68a92"
ubuntu@ubuntu:~$ sudo mount /dev/mapper/ubuntu--vg-root /mnt
ubuntu@ubuntu:~$ sudo mount /dev/nvme0n1
nvme0n1 nvme0n1p1 nvme0n1p2 nvme0n1p3 nvme0n1p4 nvme0n1p5 nvme0n1p6
ubuntu@ubuntu:~$ sudo mount /dev/nvme0n1p4 /mnt/boot
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo chroot /mnt
root@ubuntu:/# mount -t proc proc /proc
root@ubuntu:/# mount -t sysfs sys /sys
root@ubuntu:/# mount -t devpts devpts /dev/pts
root@ubuntu:/# nano /etc/crypttab
root@ubuntu:/# cat /etc/crypttab
# <target name> <source device> <key file> <options>
nvme0n1p5_crypt UUID=db4b0e02-96ab-438b-8961-b0c8ad6ad65c none luks,retry=1,lvm=ubuntu-vg
root@ubuntu:/# update-initramfs -k all -c
update-initramfs: Generating /boot/initrd.img-5.4.0-42-generic
W: Possible missing firmware /lib/firmware/i915/tgl_dmc_ver2_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/glk_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/icl_guc_33.0.0.bin for module i915
root@ubuntu:/#
答案1
按照本指南操作后(如何安装使用 LUKS 加密并双启动的 Ubuntu?) 并尝试第四次安装,我终于让它工作了。
我认为我两次运行之间的差异在于 chroot 可能没有像预期的那样顺利运行。sudo su
我没有在一开始就运行,而是在每个命令前都写了 sudo。这样,我就能清楚地识别我何时处于 chroot 环境中,何时不在。
另外,对于启动分区,我之前选择了 ext4,但这次我选择了 ext3。我还选择 /mnt 作为挂载目录,而不是 /target。