我在 XPS 15(9530 haswell)上安装 ubuntu 14.04 时遇到了麻烦,我需要帮助来重建启动分区。
我的电脑有一块 32 GB 的 miniSATA SSD 和一块 1TB 的 HDD。我使用 LUKS 和 LVM 对它们进行了加密:
root@ubuntu:/boot# lsblk -o name,uuid,mountpoint
NAME UUID MOUNTPOINT
sda
└─sda1 cbe475e3-f468-42eb-88db-8b0c3b537afa
└─sda1_crypt (dm-3) tknpdm-4E1r-wAZR-f3SJ-FV79-EQM7-Lmn67L
├─vg_hdd_sys_data-lv_swap (dm-4) 96cc436a-cb46-4a7f-9474-518f5be9ff9a
├─vg_hdd_sys_data-lv_var (dm-5) 38deba4b-b619-4769-813f-0c0f578d2e2f /var
└─vg_hdd_sys_data-lv_home (dm-6) 685e392a-8fe3-46e9-8c2f-4c935125a0e5 /home
sdb
├─sdb1 DF18-FC5D /boot/efi
├─sdb2 804c4cae-3d8e-4f7b-baec-867ee87e46de /boot
├─sdb3 df369b26-8205-488d-a01d-36456a737905
│ └─sdb3_crypt (dm-0) viOrjh-O4SE-OEbC-8xVW-mTnL-uZ3O-cmZQvl
│ └─vg_ssd_system-lv_root (dm-1) 97a7d810-dc46-415b-9f0f-bf1ee0c2bb01 /
└─sdb4 4e094c6d-874e-45ac-84f9-8a0192245551
└─sdb4_crypt (dm-2) 5a18c2b6-197a-42f5-a489-677d3d747b00 /boot/fskey
sdc
└─sdc1 3795-F7B6
loop0
首先,我必须让它工作,但在启动时,它要求我输入两次密码,然后才要求我输入用户密码。有点太多了。看看我的 /etc/crypttab:
root@ubuntu:/boot# cat /etc/crypttab
sdb3_crypt UUID=df369b26-8205-488d-a01d-36456a737905 none luks,discard
sda1_crypt UUID=cbe475e3-f468-42eb-88db-8b0c3b537afa none luks
我的/etc/fstab:
root@ubuntu:/boot# cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/vg_ssd_system-lv_root / ext4 noatime,errors=remount-ro 0 1
# /boot was on /dev/sdb2 during installation
UUID=804c4cae-3d8e-4f7b-baec-867ee87e46de /boot ext2 defaults 0 2
# /boot/efi was on /dev/sdb1 during installation
UUID=DF18-FC5D /boot/efi vfat defaults 0 1
/dev/mapper/vg_hdd_sys_data-lv_home /home ext4 defaults 0 2
/dev/mapper/vg_hdd_sys_data-lv_var /var ext4 defaults 0 2
/dev/mapper/vg_hdd_sys_data-lv_swap none swap sw 0 0
一切都很顺利,直到我尝试将其更改为在启动时仅询问一次密码。所以我:
- 创建一个包含密钥文件的密码加密卷(sdb4,20 MB)
- 将其安装在 /boot/fskey 上
- 将此密钥文件添加到我的其他加密卷中
以下是我的新 crypttab 和 fstab:
root@ubuntu:/boot# cat /etc/crypttab
sdb4_crypt UUID=4e094c6d-874e-45ac-84f9-8a0192245551 none luks,discard
sdb3_crypt UUID=df369b26-8205-488d-a01d-36456a737905 /boot/fskey/keyfile luks,discard
sda1_crypt UUID=cbe475e3-f468-42eb-88db-8b0c3b537afa /boot/fskey/keyfile luks
root@ubuntu:/boot# cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/vg_ssd_system-lv_root / ext4 noatime,errors=remount-ro 0 1
# /boot was on /dev/sdb2 during installation
UUID=804c4cae-3d8e-4f7b-baec-867ee87e46de /boot ext2 defaults 0 2
# /boot/efi was on /dev/sdb1 during installation
UUID=DF18-FC5D /boot/efi vfat defaults 0 1
/dev/mapper/sdb4_crypt /boot/fskey ext2 defaults 0 2
/dev/mapper/vg_hdd_sys_data-lv_home /home ext4 defaults 0 2
/dev/mapper/vg_hdd_sys_data-lv_var /var ext4 defaults 0 2
/dev/mapper/vg_hdd_sys_data-lv_swap none swap sw 0 0
root@ubuntu:/boot# mount /dev/mapper/vg_hdd_sys_data-lv_home /home
为了将这些更改更新到 initrd,我执行以下操作:
update-initramfs -u -v -k all
当我重新启动时,它失败了,并在下拉框中结束。我使用 usb live 重新启动,将每个分区挂载在 /mnt 下,chrooted 到 /mnt,将 crypttab 移动到初始配置,然后我重新应用上面的命令,但这一次,我所拥有的只是:
root@ubuntu:/boot# update-initramfs -u -v -k all
Nothing to do, exiting.
我重启后又失败了。我非常沮丧,因为我做了不该做的事:
root@ubuntu:/boot# update-initramfs -d -v -k all
显然,情况变得更糟了:当我重新启动时,我看到的不是 busybox,而是一个空白屏幕,Caps-Lock 键闪烁。
我在恢复模式下重新启动,所以现在我看到一条消息:
RAMDISK: EOF while reading compressed data
我在我的 usb live key 上重新启动了它,再次执行了 mount&chroot 过程并再次徒劳地尝试重建 initrd:
root@ubuntu:/boot# update-initramfs -c -v -k all
Nothing to do, exiting.
有什么想法吗?我即将从零开始重新安装 Ubuntu。但如果有人能帮助我,我会很高兴。
非常感谢,
路易斯