在提交新的错误报告之前,我决定尝试在这里寻求支持。提前为我的英语水平感到抱歉(听起来可能令人沮丧),请随时询问更多详细信息,谢谢!!格式化问题太复杂了,抱歉哈哈,所以这里是文本版本以防万一http://paste.ubuntu.com/5967000/
配置就是这么简单(没有 lvm、2 个 hdd、没有 raid):
/etc/fstab 文件
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/sda2_crypt / ext4 errors=remount-ro 0 1
# /boot was on /dev/sdc1 during installation
UUID=664ca8af-34b8-4012-ba27-9f48044b6e4e /boot reiserfs notail 0 2
/dev/mapper/sdb1_crypt /media/storage ext4 noatime,sync 0 2
/dev/mapper/sda1_crypt none swap sw 0 0
/etc/crypttab 文件
sda1_crypt /dev/sda1 /dev/urandom cipher=aes-xts-plain64,size=256,swap
sda2_crypt UUID=bc4ff5ca-d27a-423b-9ab1-806b64556ace /boot/key luks
sdb1_crypt UUID=85baac75-dae4-4807-98dd-65d17d0c66f4 /boot/key luks
/dev/sda2 和 /dev/sdb1 只有一个 Slot0 用于 /boot/key 授权,因此:
update-initramfs: Generating /boot/initrd.img-3.8.0-28-generic
cryptsetup: WARNING: target sda2_crypt uses a key file, skipped
以及无法启动的系统。
但是,使用唯一的 Slot0 密码授权的 sda2 可以完美运行,这意味着可以通过 luks 密钥文件对 /dev/sdb1 进行授权,在启动过程中自动挂载
/etc/crypttab 文件
sda1_crypt /dev/sda1 /dev/urandom cipher=aes-xts-plain64,size=256,swap
sda2_crypt UUID=bc4ff5ca-d27a-423b-9ab1-806b64556ace none luks
sdb1_crypt UUID=85baac75-dae4-4807-98dd-65d17d0c66f4 /boot/key luks
获得与此类配置相关的支持似乎并不那么容易,所以也许这不是一个错误,因为目前我不确定接下来会发生什么:
1.为了使用基于密钥文件的 luks 授权来对挂载点在 /(根 fs)的驱动器进行授权,是否需要一个密钥脚本选项?
在查看 /usr/share/initramfs-tools/hooks/cryptroot 后出现了这个问题;阅读了第 13 条https://answers.launchpad.net/ubuntu/+source/cryptsetup/+question/37176和:
“但是,如果您希望使用更复杂的设置(例如 root‐key‐on‐usb‐memory),您可以创建一个脚本,执行检索密钥所需的所有步骤,然后将其打印到标准输出。”来自这里 /usr/share/doc/cryptsetup/README.initramfs.gz
2.我“可以创建”它还是我“必须”使用密钥文件来挂载 rootfs?
我完全不清楚情况,因为:
为什么我需要一个用于 /device 的密钥脚本(如果我需要的话),而不需要用于 /media/storage 的密钥脚本?考虑到我在可移动 /boot 上为两者设置的密钥文件。
如果很明显可以访问带有密钥文件的可移动 /boot 媒体,因为 /dev/sdb1 最终根据 /etc/fstab 作为挂载点上的 luks 映射设备出现,那么为什么我需要密钥脚本?
如果我不需要密钥脚本,为什么我会收到来自 initramfs 钩子的警告,它会检查我是否有一个用于安装根设备?(最终导致系统无法启动)
如果上述内容定义明确,我还有最后一个问题:这是错误还是功能?因为它曾经在我之前的 12.04 设置中工作,而我现在正尝试让它在新安装的 13.04 上运行,这意味着有些东西已经修复,让我保持这种状态,或者添加了一些功能。
额外的:
# If keyscript is set, the "key" is just an argument to the script
if [ "$key" != "none" ] && [ -z "$KEYSCRIPT" ]; then
echo "cryptsetup: WARNING: target $target uses a key file, skipped" >&2
return 1
fi
}
它的存在是否只是为了确保我会根据事实 != none 收到无用的警告?抱歉,我太菜鸟了。