UEFIサポートと250GB GPT SSDディスクを備えたHP Pavilion G7ラップトップがあります。ラップトップには最初にWindows 8がインストールされていましたが、後でWindows 10のクリーンインストールを行い、Linux用の空きスペースを確保しました。
次に、Win10とUbuntu16 Mate 16.04 LTSデュアルブート、LUKS暗号化ディスク、LVMが必要です。
このようなLUKSおよびLVMとのデュアルブート構成は、Ubuntu Mate GUIインストーラーでは不可能ですが、次の指示に従うことがわかりました(Ubuntu 13.04でテスト済み)。
LUKSで暗号化されたUbuntuをデュアルブートでインストールするにはどうすればよいですか?
これらの指示に従おうとしましたが、ブート時に常にcryptsetup
が失敗するため、暗号化されたディスクを開くことができません。
ここに私の手順があります、番号付けは指示と同じです:
ライブディスクに含まれているGPartedを使用してパーティションを作成します。 GParted。 LUKSのブートとデータの2つのパーティションを作成しました。 Windows espは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のフォーマット
これらのコマンドを使用してLUKSコンテナーを作成します
Sudo cryptsetup luksFormat /dev/sda8
Sudo cryptsetup luksOpen /dev/sda8 pv_data
新しい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
マウントされたLUKSコンテナー内で、LVM物理ボリューム、ボリュームグループ、および2つの論理ボリュームを作成します。最初の論理ボリュームは/にマウントされ、2番目の論理ボリュームはスワップとして使用されます。
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
2つの論理ボリュームのファイルシステムを作成します
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
グラフィカルインストーラーを使用して、手動パーティション分割を選択してUbuntuをインストールします。
割り当て:/
を/dev/mapper/vg_data-lv_root
に、/boot
を/dev/sda7
に、スワップを/dev/mapper/vg_data-lv_swap
に
sda7ブート、lv_root、lv_swap、sda2 efi Windowsブートマネージャーを除く他のパーティションを「使用しない」とマークします。
/dev/sda
にブートローダーをインストールするデバイスを選択します
グラフィカルインストーラーが終了したら、[テストの継続]を選択してターミナルを開きます。
LUKSパーティションのUUIDを見つけます:/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"
/ 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
Chrooted環境に/ etc/crypttabという名前のファイルを作成します。
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
Chrooted環境で/etc/initramfs-tools/conf.d/cryptrootという名前のファイルを作成します。
root@ubuntu-mate:/# cat /etc/initramfs-tools/conf.d/cryptroot
CRYPTROOT=target=pv_data,source=/dev/disk/by-uuid/ec4c6b1d-0bf1-41d4-81ec-754987a5532f
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
これらのエラーは重大ですか?
Chrooted環境の/ etc/default/grubという名前のファイルを編集します。
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:/#
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
エラーがここで削除されましたが、update-grubがこのようなエラーを生成するのは正常ですか?
再起動して、暗号化された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
ファイルは空です。何かあるべき?
私はついにこれを修正する時間ができました。
エラーはステップ10にありました。この部分を見逃しました。
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts
それを修正した後、インストールはうまくいきました。
参照回答 に関するその他の注意:
また、UbuntuインストーラーGUIを終了せずにLUKS暗号化パーティションでデュアルブートをインストールすることが実際に可能であることに気付きました。このオプションのダウンサイズは、暗号化されたパーティションを1つしか作成できないことです。したがって、GUIインストーラーを使用すると、次のような構成にできます。
そして、必要に応じて これらの手順 で暗号化されたルート内にスワップファイルを作成します