ubuntu 14.04 无法启动,update-initramfs“无事可做,退出”

ubuntu 14.04 无法启动,update-initramfs“无事可做,退出”

我在 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。但如果有人能帮助我,我会很高兴。

非常感谢,

路易斯

相关内容