Двойная загрузка Ubuntu с LVM и LUKS устанавливает сбои

У меня есть ноутбук HP Pavilion G7 с поддержкой UEFI и GPT на 250 ГБ диск SSD. Ноутбуку первоначально установили Windows 8, но позже я сделал чистую установку Windows 10 и зарезервировал некоторый вакуум для Linux.

Теперь я хочу иметь Win10 и Помощника Ubuntu16 16.04 LTS dualboot, LUKS зашифровал диски с LVM.

Этот вид dualboot confuguration с LUKS и LVM не возможен с Помощником Ubuntu установщик GUI, но я нашел, что следующие инструкции следовали (протестированный на Ubuntu 13.04):

Как я могу установить Ubuntu, зашифрованную с LUKS с двойной загрузкой?

Я пытался следовать этим инструкциям, но всегда при начальной загрузке я не могу открыть зашифрованный диск потому что cryptsetup сбои.

Вот моя процедура, нумерация - то же как в инструкциях:

  1. Начальная загрузка из Ubuntu живой DVD или карта с интерфейсом USB и выбор "Пробует Ubuntu".
  2. Создайте разделы с помощью GParted, включенного в живой диск. GParted. Созданный 2 раздела: начальная загрузка и данные для LUKS. Windows особенно будет использоваться для Ubuntu также.

    (parted) print list                                                       
    Model: ATA Samsung SSD 850 (scsi)
    Disk /dev/sda: 250GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End    Size    File system  Name                          Flags
     1      1049kB  473MB  472MB   ntfs         Basic data partition          hidden, diag
     2      473MB   578MB  105MB   fat32        EFI system partition          boot, esp
     3      578MB   595MB  16.8MB               Microsoft reserved partition  msftres
     4      595MB   123GB  123GB   ntfs         Basic data partition          msftdata
     5      123GB   124GB  835MB   ntfs                                       hidden, diag
     6      124GB   125GB  524MB   ext4         NotUsed
     7      125GB   126GB  1049MB  ext4         linux-boot
     8      126GB   250GB  124GB                linux-data
    
    ubuntu-mate@ubuntu-mate:~$ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 232.9G  0 disk 
    ├─sda1   8:1    0   450M  0 part 
    ├─sda2   8:2    0   100M  0 part (This is Windows esp)
    ├─sda3   8:3    0    16M  0 part 
    ├─sda4   8:4    0 114.4G  0 part 
    ├─sda5   8:5    0   796M  0 part 
    ├─sda6   8:6    0   500M  0 part 
    ├─sda7   8:7    0  1000M  0 part (boot)
    └─sda8   8:8    0 115.7G  0 part (LUKS)
    

    разделы формата sda7, sda8

  3. Создайте контейнер LUKS с помощью этих команд

    sudo cryptsetup luksFormat /dev/sda8
    sudo cryptsetup luksOpen /dev/sda8 pv_data
    
  4. Очень важно правильно инициализировать новый контейнер LUKS

    ubuntu-mate@ubuntu-mate:~$ sudo dd if=/dev/zero of=/dev/mapper/pv_data bs=16M
    dd: error writing '/dev/mapper/pv_data': No space left on device
    7469+0 records in
    7468+0 records out
    125303783424 bytes (125 GB, 117 GiB) copied, 381.69 s, 328 MB/s
    
  5. В смонтированном контейнере LUKS создайте физический том LVM, группу объема и два логических тома. Первый логический том будет смонтирован в/, и второй будет использоваться в качестве подкачки.

    ubuntu-mate@ubuntu-mate:~$ sudo pvcreate /dev/mapper/pv_data
      Physical volume "/dev/mapper/pv_data" successfully created
    
    ubuntu-mate@ubuntu-mate:~$ sudo vgcreate vg_data /dev/mapper/pv_data
      Volume group "vg_data" successfully created
    
    ubuntu-mate@ubuntu-mate:~$ sudo lvcreate -n lv_swap -L 12g vg_data
      Logical volume "lv_swap" created.
    
    ubuntu-mate@ubuntu-mate:~$ sudo lvcreate -n lv_root -L 80g vg_data
      Logical volume "lv_root" created.
    
    ubuntu-mate@ubuntu-mate:~$ lsblk
    NAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    sda                     8:0    0 232.9G  0 disk  
    ...
    └─sda8                  8:8    0 115.7G  0 part  
    └─pv_data           252:0    0 115.7G  0 crypt 
        ├─vg_data-lv_swap 252:1    0    12G  0 lvm   
        └─vg_data-lv_root 252:2    0    80G  0 lvm   
    
  6. Создайте файловые системы для этих двух логических томов

    ubuntu-mate@ubuntu-mate:~$ sudo mkfs.ext4 /dev/mapper/vg_data-lv_root
    mke2fs 1.42.13 (17-May-2015)
    Creating filesystem with 20971520 4k blocks and 5242880 inodes
    Filesystem UUID: 1cbd1ea6-fa20-41f6-a870-5c159301bee4
    Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done   
    
    ubuntu-mate@ubuntu-mate:~$ sudo mkswap /dev/mapper/vg_data-lv_swap
    Setting up swapspace version 1, size = 12 GiB (12884897792 bytes)
    no label, UUID=d665e5d7-b81f-4078-a5d5-bb1dd137fce2
    
  7. Установите Ubuntu с помощью графического установщика, выбрав ручное разделение.

    Присвойтесь: / кому: /dev/mapper/vg_data-lv_root, /boot кому: /dev/sda7, подкачка к /dev/mapper/vg_data-lv_swap

    отметьте другие разделы, "не используют" кроме начальной загрузки sda7, lv_root, lv_swap, диспетчер начальной загрузки sda2 efi окон

    Выберите устройство для установки загрузчика на /dev/sda

  8. После того как графический установщик закончен, выберите, "продолжают тестировать" и открывают терминал.

  9. Найдите UUID разделов LUKS: /dev/sda8

    ubuntu-mate@ubuntu-mate:~$ sudo blkid
    /dev/sda1: LABEL="Recovery" UUID="FABE4708BE46BCBF" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="69ee7fd0-ed56-41b2-b974-b76647cb98d5"
    /dev/sda2: UUID="9A47-7CB4" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="3cfbb43a-3bfd-48ac-b673-109f469c4d72"
    /dev/sda4: UUID="82324D05324D0021" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="342a1cfb-8587-4dbc-a180-4872aa23aff5"
    /dev/sda5: UUID="D606B52306B50611" TYPE="ntfs" PARTUUID="6bebe835-96b9-422e-b9c1-baf69ae085b3"
    /dev/sda6: UUID="341a01d8-dcb7-4c51-99aa-22a84d53054b" TYPE="ext4" PARTLABEL="NotUsed" PARTUUID="f2524ea7-8736-4998-8705-5e9d22c42b3c"
    /dev/sda7: UUID="d0033e81-c785-4efc-a0d3-1128b7a99792" TYPE="ext4" PARTLABEL="linux-boot" PARTUUID="08e453f9-84ca-48b0-a26f-915f2462c578"
    /dev/sdb1: LABEL="UBUNTU-MATE" UUID="8EDE-65EA" TYPE="vfat" PARTLABEL="Microsoft Basic Data" PARTUUID="2c0f92b3-5d67-45c7-bc1b-ce8a1a284015"
    /dev/loop0: TYPE="squashfs"
    /dev/sda8: UUID="ec4c6b1d-0bf1-41d4-81ec-754987a5532f" TYPE="crypto_LUKS" PARTLABEL="linux-data" PARTUUID="18bf1837-1dda-477a-9007-e3478e12f565"
    /dev/sdc1: LABEL="FAT32GB" UUID="FE56-878C" TYPE="vfat" PARTUUID="58ee1847-01"
    /dev/mapper/pv_data: UUID="11kz5r-WtT9-c2oU-sDrB-ObWm-OCiP-t0JG9c" TYPE="LVM2_member"
    /dev/mapper/vg_data-lv_swap: UUID="d665e5d7-b81f-4078-a5d5-bb1dd137fce2" TYPE="swap"
    /dev/mapper/vg_data-lv_root: UUID="57c480e3-59c7-4203-ac5c-2a08075fd71c" TYPE="ext4"
    /dev/dm-1: UUID="d665e5d7-b81f-4078-a5d5-bb1dd137fce2" TYPE="swap"
    /dev/sda3: PARTLABEL="Microsoft reserved partition" PARTUUID="dfbb8924-81a1-4646-9baa-3a4977641f5e"
    
  10. Смонтируйте соответствующие устройства к соответствующим местоположениям в/mnt и chroot в него:

    sudo mount /dev/mapper/vg_data-lv_root /mnt
    sudo mount /dev/sda7 /mnt/boot
    sudo mount --bind /dev /mnt/dev
    sudo chroot /mnt
    
  11. Создайте файл, названный/etc/crypttab в chrooted среде:

    root@ubuntu-mate:/# cat /etc/crypttab
    # <target name> <source device> <key file> <options>
    pv_data UUID=ec4c6b1d-0bf1-41d4-81ec-754987a5532f none luks,retry=1,lvm=vg_data
    
  12. Создайте файл, названный/etc/initramfs-tools/conf.d/cryptroot в chrooted среде:

    root@ubuntu-mate:/# cat /etc/initramfs-tools/conf.d/cryptroot
    CRYPTROOT=target=pv_data,source=/dev/disk/by-uuid/ec4c6b1d-0bf1-41d4-81ec-754987a5532f
    
  13. Выполните следующую команду в chrooted среде:

    root@ubuntu-mate:/# update-initramfs -k all -c
    update-initramfs: Generating /boot/initrd.img-4.4.0-38-generic
    cat: /proc/cmdline: No such file or directory
    update-initramfs: Generating /boot/initrd.img-4.4.0-31-generic
    cat: /proc/cmdline: No such file or directory
    

    Действительно ли эти ошибки очень важны?

  14. Отредактируйте файл, названный/etc/default/grub в chrooted envirnoment:

    root@ubuntu-mate:/# cat /etc/default/grub
    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.
    # For full documentation of the options in this file, see:
    #   info -f grub -n 'Simple configuration'
    
    GRUB_DEFAULT=0
    #GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    #GRUB_CMDLINE_LINUX=""
    GRUB_CMDLINE_LINUX="cryptopts=target=pv_data,source=/dev/disk/by-uuid/ec4c6b1d-0bf1-41d4-81ec-754987a5532f,lvm=vg_data"
    
    # Uncomment to enable BadRAM filtering, modify to suit your needs
    # This works with Linux (no patch required) and with any kernel that obtains
    # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
    #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
    
    # Uncomment to disable graphical terminal (grub-pc only)
    #GRUB_TERMINAL=console
    
    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    #GRUB_GFXMODE=640x480
    
    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true
    
    # Uncomment to disable generation of recovery mode menu entries
    #GRUB_DISABLE_RECOVERY="true"
    
    # Uncomment to get a beep at grub start
    #GRUB_INIT_TUNE="480 440 1"
    root@ubuntu-mate:/# 
    
  15. Выполните следующую команду в chrooted среде:

    root@ubuntu-mate:/# update-grub
    Generating grub configuration file ...
    ...
    /proc/devices: fopen failed: No such file or directory
    Found linux image: /boot/vmlinuz-4.4.0-38-generic
    Found initrd image: /boot/initrd.img-4.4.0-38-generic
    /proc/devices: fopen failed: No such file or directory
    device node not found
    /proc/devices: fopen failed: No such file or directory
    device node not found
    Found linux image: /boot/vmlinuz-4.4.0-31-generic
    Found initrd image: /boot/initrd.img-4.4.0-31-generic
    /proc/devices: fopen failed: No such file or directory
    /proc/devices: fopen failed: No such file or directory
    /proc/devices: fopen failed: No such file or directory
    device node not found
    ...
    device node not found
    /proc/devices: fopen failed: No such file or directory
    device node not found
    Found memtest86+ image: /memtest86+.elf
    Found memtest86+ image: /memtest86+.bin
    grep: /proc/mounts: No such file or directory
    Cannot find list of partitions!  (Try mounting /sys.)
    done
    root@ubuntu-mate:/# 
    

    Десятки device node not found ошибки удалили сюда, действительно ли нормально, что личинка обновления производит это много ошибок?

  16. Перезагрузка и начальная загрузка в зашифрованную Ubuntu. Вам нужно предложить пароль.

    Во время перезагрузки Windows 10 начинает загружаться по умолчанию. Если я поразил Esc и избранную Ubuntu из списка, Ubuntu начинает загружаться, но cryptsetup сбои со следующими сообщениями об ошибках:

    cryptsetup: cryptsetup failed, bad password or options?
    /scripts/local-top/cryptroot: line:1 /sbin/cryptsetup: not found.
    

Какова причина этого отказа и как я могу зафиксировать его?

/etc/modules файл пуст. Должно быть что-то?

3
задан 13 April 2017 в 15:23

1 ответ

Я наконец заставил время фиксировать это.

Ошибка была на шаге 10. Я пропустил эту часть его:

mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts

После фиксации этого, установка пошла прекрасная.

Другие примечания относительно ответ, на который ссылаются :

  • Автор изменил ответ так, чтобы при чтении всех комментариев, говоря, что можно пропустить шаги 12,14,15, Вы ПОШЛИ НЕ ТАК, КАК НАДО. Модификации принимают эти комментарии во внимание, и эти шаги уже удалены из инструкций, не пропускайте шаги.
  • я установил Помощника Ubuntu LTS 16.4.1 с теми инструкциями.

я также заметил, что на самом деле возможно установить двойную загрузку с зашифрованным разделом LUKS, не выходя из установщика GUI Ubuntu. Уменьшение этой опции состоит в том, что можно только сделать 1 зашифрованный раздел. Таким образом с установщиком GUI у Вас может быть конфигурация как это:

  • начальная загрузка non-crypted
  • зашифрованный корень

и затем создают своп-файл в зашифрованном корне в случае необходимости с эти инструкции

3
ответ дан 1 December 2019 в 16:21

Другие вопросы по тегам:

Похожие вопросы: