首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LVM & LUKS手动分区,但与加载程序/init/grub有关

LVM & LUKS手动分区,但与加载程序/init/grub有关
EN

Ask Ubuntu用户
提问于 2016-02-14 12:22:42
回答 2查看 4.8K关注 0票数 4

我在手动分区和安装LVM & LUKs方面取得了一些成功。

分区是创建的-主分区、根分区、交换分区和引导分区,pv和vg分区都是正确创建和设置的。

我是从Live安装的,文件系统中的所有东西都安装到了正确的位置。

我用正确的UUID和/etc/fstab安装和安装/etc/crypttab,指向正确的映射器和UUID(基于blkid输出)。

此时,我尝试了几种方法,尝试让引导程序和grub为我提供一个密码登录屏幕,它将解密我在/etc/crypttab中引用的内容。

第一种方法-

代码语言:javascript
复制
mount -t proc proc /proc 
mount -t sysfs sys /sys 
update-initramfs -u

运行这个告诉我

代码语言:javascript
复制
/usr/sbin/iucode_tool: cpuid kernel driver unavailable, cannot scan system processor signatures

第二种方法-

检查/etc/mkinitcpio.conf以添加lvm2和加密,然后跟着

代码语言:javascript
复制
mkinitcpio -p linux

这也行不通,因为mkinitcpio不存在。

经过一些研究之后,我认为/etc/crypttab也许对现有的init进程来说已经足够了?

第三种方法-

编辑/etc/默认/grub以添加

代码语言:javascript
复制
GRUB_ENABLE_CRYPTODISK=y 

然后跑

代码语言:javascript
复制
grub mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda1

我现在遇到的问题是

代码语言:javascript
复制
/usr/sbin/grub-probe: error: failed to get canonical path of `/dev/mapper/ubuntu-rootvol'

我知道用密码处理这个引导屏幕应该相当简单,但是我没有选择了。请告诉我有Ubuntu引用/etc/crypttab的正确方法。

谢谢你的帮忙!

EN

回答 2

Ask Ubuntu用户

发布于 2017-03-17 08:19:30

我找到了一种在手动分区的同时设置LUKS和LVM的方法!我在Ubuntu 16.04.2上测试了这个

从Live启动Ubuntu并选择不安装Ubuntu的选项。按照我在下面概述的步骤。

  1. 用您选择的工具对驱动器进行分区:我使用fdisk在msdos分区表上设置我的驱动器,如下所示:
    • sda1: /boot (1G)
    • sda2: LUKS分区(磁盘的其余部分)

  2. 设置LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sda2
    • sudo cryptsetup luksOpen /dev/sda2 CryptDisk
    • 虽然没有必要,但最好用零填充LUKS分区,以便在加密状态下的分区被随机数据填充。sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M小心,这可能需要很长时间!

  3. 在/dev/mapper/CryptDisk 上安装LVM
    • sudo pvcreate /dev/mapper/CryptDisk
    • sudo vgcreate vg0 /dev/mapper/CryptDisk
    • sudo lvcreate -n swap -L 2G vg0
    • sudo lvcreate -n root -L 10G vg0
    • sudo lvcreate -n home -l +100%FREE vg0

  4. 现在你准备好安装了。当您到达安装的“安装类型”部分时,选择“the”选项。然后,按照您希望配置的那样手动分配/dev/mapper/vg0 0-*分区。不要忘记将/dev/sda1 1设置为/boot。/boot分区不能加密。如果是的话,我们就不能启动了。将“引导加载程序安装的设备”更改为/dev/sda,并继续安装。
  5. 安装完成后,不要重新启动!选择“继续测试”选项。
  6. 在终端中,键入以下内容并查找/dev/sda2 2的UUID。请注意以后的UUID。
    • sudo blkid
    • 我的机器上的重要一行是/dev/sda2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"

  7. 接下来,让我们重新安装新安装的系统,这样我们就可以进行更多的更改。
    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home #这可能不是必要的
    • sudo mount /dev/sda1 /mnt/boot
    • 如果您有EFI分区,请将其挂载到/mnt/boot/efi
    • sudo mount --bind /dev /mnt/dev #我不完全确定这是否必要
    • sudo mount --bind /run/lvm /mnt/run/lvm

  8. 现在运行sudo chroot /mnt访问已安装的系统
  9. 从chroot,再挂载几个东西,
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts

  10. 安装密码。使用您最喜欢的文本编辑器,创建文件/etc/crypttab并添加以下行,用磁盘的UUID更改UUID。
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard

  11. 最后,重建一些引导文件。
    • update-initramfs -k all -c
    • update-grub

  12. 重新启动,系统应该要求在启动时解密密码!

特别感谢马丁·伊芙EGIDIO温顺blog.botux.fr的朋友们发布的教程。通过从他们的帖子中取出一些片段,并做一些额外的麻烦解决,我终于能够解决这个问题。

我试了好几次,一次又一次失败。我必须根据错误消息为自己计算的部分是sudo mount --bind /run/lvm /mnt/run/lvm

票数 2
EN

Ask Ubuntu用户

发布于 2019-02-17 11:42:41

非常感谢您的指导。我最近尝试了18.04,工作非常出色。为了修复grub安装并处理EFI,我介绍了一些基于无法在宏碁Aspire ES1-533上安装Ubuntu的更多步骤。在"update-initramfs -k all -c“之后,我使用了以下步骤:

1-通过以下方式加载efivar:

sudo modprobe efivars

2-重新安装grub-安装64位版本:

sudo apt-get install --reinstall grub-efi-amd64

sudo grub-install --no-nvram --root-directory=/mnt

3-将根目录更改为/mnt并更新grub

sudo chroot /mnt

update-grub

(在我的例子中,有一个关于grub的问题(在sda1中找不到)。但这并没有影响我的安装)

4-移动并重命名已安装的引导加载程序。

cd /boot/efi/EFI

cp -R ubuntu/* BOOT/

cd BOOT

cp grubx64.efi bootx64.efi

最后,重新启动!

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/733488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档