지난 며칠 동안 암호화된 NAS를 설정하려고 노력해 왔습니다. 기본 계획은 raid1의 lvm에 있는 luks에 btrfs를 설치하고 루트 파티션의 쓰기 저장 모드에서 lvmcache를 사용하여 디스크 액세스를 줄이는 것입니다.
간단히 말해서:
파티션 및 파일 시스템을 설정한 후 설치할 수 없습니다 GRUB
.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
분할
Arch Wiki에 이어 먼저 파티션을 설정했습니다.
gdisk
/dev/sda 및 /dev/sdb에 대한 출력:
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9EFA6587-E34F-4AC1-8B56-5262480A6C6A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02 BIOS boot partition
2 4096 976773134 465.8 GiB 8300 Linux filesystem
참고하세요BIOS 부팅 파티션이는 모드 GRUB
로 설치할 때 분명히 필요합니다 BIOS/GPT
.
MDADM
두 개의 디스크가 있으므로 배열에 넣기를 원합니다 RAID1
.
mdadm --create --level=1 --raid-devices=2 /dev/md0 /dev/sda2 /dev/sdb2
root@archiso ~ # mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=archiso:0 UUID=bdfc3fea:f4a0ee6d:6ac08012:59ea384b
root@archiso ~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[1] sda2[0]
488253440 blocks super 1.2 [2/2] [UU]
[>....................] resync = 2.0% (9832384/488253440) finish=96.6min speed=82460K/sec
bitmap: 4/4 pages [16KB], 65536KB chunk
unused devices: <none>
루크스
다음 LUKS
으로 볼륨을 설정했습니다 RAID
.
root@archiso ~ # cryptsetup luksFormat /dev/md0
WARNING!
========
This will overwrite data on /dev/md0 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
root@archiso ~ # cryptsetup luksOpen /dev/md0 md0-crypt
Enter passphrase for /dev/md0:
좌심실 용적
Btrfs
대신 스냅샷을 사용할 수 있지만 LVM
작성 시점에는 SSD 캐시 장치를 추가할 수 있는 방법이 없습니다 Btrfs
. 그래서 LVM
나중에 SSD를 사용하고 추가하기로 결정했습니다 lvmcache
.
(한 단계로 볼륨 그룹 생성:)
root@archiso ~ # vgcreate vg0 /dev/mapper/md0-crypt
Physical volume "/dev/mapper/md0-crypt" successfully created
Volume group "vg0" successfully created
root@archiso ~ # lvcreate -L 100M -C y vg0 -n boot
Logical volume "boot" created.
root@archiso ~ # lvcreate -L 20G vg0 -n root
Logical volume "root" created.
root@archiso ~ # lvcreate -L 10G vg0 -n var
Logical volume "var" created.
root@archiso ~ # lvcreate -L 6G -C y vg0 -n swap
Logical volume "swap" created.
root@archiso ~ # lvcreate -l +100%FREE vg0 -n home
Logical volume "home" created
다음 레이아웃을 생성합니다.
root@archiso ~ # lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
boot vg0 -wc-a----- 100.00m
home vg0 -wi-a----- 429.53g
root vg0 -wi-a----- 20.00g
swap vg0 -wc-a----- 6.00g
var vg0 -wi-a----- 10.00g
btrfs/파일 시스템
파일 시스템 생성:
root@archiso ~ # mkfs.ext4 /dev/vg0/boot
root@archiso ~ # mkfs.btrfs /dev/vg0/home
root@archiso ~ # mkfs.btrfs /dev/vg0/root
root@archiso ~ # mkfs.btrfs /dev/vg0/var
( 파티션 크기가 너무 작다는 불만 ext4
으로 인해 부트를 선택했습니다 .)btrfs
파일 시스템을 마운트합니다.
root@archiso ~ # swapon /dev/vg0/swap
root@archiso ~ # mount /dev/vg0/root /mnt/arch -o compress=lzo
root@archiso ~ # mount /dev/vg0/home /mnt/arch/home -o compress=lzo
root@archiso ~ # mount /dev/vg0/var /mnt/arch/var -o compress=lzo
root@archiso ~ # mount /dev/vg0/boot /mnt/arch/boot
아치 설치
실제로 이전 백업에서 시스템을 복사했습니다.
root@archiso ~ # rsync -Pa /mnt/bkp/sda/* /mnt/arch
(커피타임(여가시간)
mdadm.conf 및 fstab 설정
root@archiso ~ # genfstab -U /mnt/arch > /mnt/arch/etc/fstab
root@archiso ~ # cat /mnt/arch/etc/fstab
# /dev/mapper/vg0-root
UUID=62ebf0c9-bb37-4b4e-87dd-eb8a4ace6a69 / btrfs rw,relatime,compress=lzo,space_cache 0 0
# /dev/mapper/vg0-home
UUID=53113e11-b663-452f-b4da-1443e470b065 /home btrfs rw,relatime,compress=lzo,space_cache 0 0
# /dev/mapper/vg0-var
UUID=869ffe10-7a1c-4254-9612-25633c7ae619 /var btrfs rw,relatime,compress=lzo,space_cache 0 0
# /dev/mapper/vg0-boot
UUID=d121a9df-8c03-4ad9-a6e0-b68739b1a358 /boot ext4 rw,relatime,data=ordered 0 2
# /dev/mapper/vg0-swap
UUID=29035eeb-540d-4437-861b-c30597bb7c16 none swap defaults 0 0
root@archiso ~ # mdadm --detail --scan >> /mnt/arch/etc/mdadm.conf
root@archiso ~ # cat /mnt/arch/etc/mdadm.conf
[...]
ARRAY /dev/md0 metadata=1.2 name=archiso:0 UUID=bdfc3fea:f4a0ee6d:6ac08012:59ea384b
시스템에 들어가는 chroot
root@archiso ~ # arch-chroot /mnt/arch /bin/bash
[root@archiso /]#
mkinitcpio.conf
다음 후크를 추가했습니다.mdadm_udev encrypt lvm2 btrfs
[root@archiso /]# mkinitcpio -p linux
GRUB 구성
이제 재미있는(그리고 실패한) 부분을 위해 이것을 GRUB
부트로더로 선택했습니다. 왜냐하면 이것이 내가 사용하는 모든 장치를 지원해야 하기 때문입니다.
인용하다:
- https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS
- http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/
변경된 부분 /etc/default/grub
:
GRUB_CMDLINE_LINUX="cryptdevice=/dev/md0:vg0"
GRUB_ENABLE_CRYPTODISK=y
그럽을 설치하십시오:
[root@archiso /]# grub-install --target=i386-pc --recheck /dev/sda
Installing for i386-pc platform.
/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
( --debug
출력 가능여기)
솔직히...여기서 무엇이 문제인지 모르겠습니다. BIOS/GPT 모드에서 GRUB는 core.img를 ef02/BIOS boot
파티션에 포함해야 합니다. 그렇지 않습니까?
편집하다
https://bbs.archlinux.org/viewtopic.php?id=144254여기에는 해당되지 않습니다:
[root@archiso /]# btrfs fi show --all-devices
Label: none uuid: 62ebf0c9-bb37-4b4e-87dd-eb8a4ace6a69
Total devices 1 FS bytes used 965.77MiB
devid 1 size 20.00GiB used 3.04GiB path /dev/mapper/vg0-root
Label: none uuid: 869ffe10-7a1c-4254-9612-25633c7ae619
Total devices 1 FS bytes used 339.15MiB
devid 1 size 10.00GiB used 3.04GiB path /dev/mapper/vg0-var
Label: none uuid: 53113e11-b663-452f-b4da-1443e470b065
Total devices 1 FS bytes used 384.00KiB
devid 1 size 429.53GiB used 2.04GiB path /dev/mapper/vg0-home
Btrfs v3.17.3
답변1
음... 분명히 이 줄이 단서입니다.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
이전에는 및 btrfs
에 직접 설치했습니다 . 이것이 바로 둘 다 FSTYPE과 LABEL이 첨부된 이유입니다(그림 참조 )./dev/sda
/dev/sdb
lsblk
해결책:/dev/sda
이제 (Secure Erase)를 사용하여 삭제했습니다 . 아마도 이 플래그를 설정 해제하는 더 좋은 방법이 있을 것입니다. 그러나 이것은 저에게 효과적입니다./dev/sdb
hdparm
답변2
이는 Google의 인기 검색결과 중 하나입니다.
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
나를 위한 해결책은 다음과 같이 dd를 사용하여 부팅 디스크를 지우는 것이었습니다(USB 디스크에 GRUB를 설치하려고 했습니다).
dd if=/dev/zero of=/dev/sdd bs=1M status=progress
그런 다음 새 파티션 테이블을 생성하지만 이번에는 기본보다 몇 섹터 나중에 시작됩니다.
fdisk /dev/sdd
n (for new partition)
p (for primary partition)
1 (for partition 1)
50000 (for first sector 50,000 vs default 2,480)
새 파티션과 파티션 테이블을 작성한 후 grub-install 프로그램을 실행했습니다...
grub-install --force --skip-fs-probe /dev/sdd