在双启动加密安装期间无法从实时 USB 运行 update-initramfs

在双启动加密安装期间无法从实时 USB 运行 update-initramfs

我是一名 Ubuntu 新手,正在尝试使用 Windows 10 和 Ubuntu 18.04 进行加密双启动。对于 Ubuntu 安装,我遵循了一些指南,其中使用可启动 USB 对分区进行加密,并在不安装它的情况下启动 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。

相关内容