Ich habe seit einigen Tagen Probleme, ein verschlüsseltes NAS einzurichten. Der Grundplan besteht darin, btrfs auf lvm auf luks auf raid1 mit lvmcache im Rückschreibemodus für die Root-Partition zu verwenden, um den Festplattenzugriff zu verringern.
TL; DR:
Nach dem Einrichten der Partitionen und Dateisysteme kann GRUB
nicht installiert werden mit:
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.
Partitionen
Nach dem Arch Wiki richte ich zunächst die Partitionen ein:
gdisk
Ausgabe für / dev / sda und / 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
Beachten Sie die BIOS-Startpartition , die GRUB
bei der Installation im BIOS/GPT
Modus anscheinend erforderlich ist .
MDADM
Da ich zwei Festplatten habe, möchte ich sie in einem RAID1
Array haben:
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
Als nächstes richte ich ein LUKS
Volume über 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:
LVM
Btrfs
Snapshots könnten anstelle von verwendet werden LVM
, aber zum Zeitpunkt des Schreibens gibt es keine Möglichkeit, ein SSD-Caching-Gerät hinzuzufügen Btrfs
. Also habe ich mich entschieden, LVM
die SSD lvmcache
später zu verwenden und hinzuzufügen :
(Erstellen der Volume-Gruppe in einem Schritt :)
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
Daraus resultiert folgendes Layout:
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 / Dateisysteme
Dateisysteme erstellen:
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
wurde für den Start ausgewählt, weil btrfs
sich über die geringe Partitionsgröße beschwert.)
Mounten der Dateisysteme:
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
Arch installieren
Eigentlich kopiere ich das System einfach von einer vorherigen Sicherung:
root@archiso ~ # rsync -Pa /mnt/bkp/sda/* /mnt/arch
( Kaffeepause )
Einrichten von mdadm.conf und 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
Chrooting in das System
root@archiso ~ # arch-chroot /mnt/arch /bin/bash
[root@archiso /]#
mkinitcpio.conf
Diese Haken wurden hinzugefügt: mdadm_udev encrypt lvm2 btrfs
[root@archiso /]# mkinitcpio -p linux
GRUB konfigurieren
Für den interessanten (und fehlgeschlagenen) Teil habe ich mich für GRUB
meinen Bootloader entschieden, da er alle von mir verwendeten Geräte unterstützen soll.
Verweise:
- 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/
Geänderte Teile in /etc/default/grub
:
GRUB_CMDLINE_LINUX="cryptdevice=/dev/md0:vg0"
GRUB_ENABLE_CRYPTODISK=y
Maden installieren:
[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
Ausgabe hier verfügbar )
Ehrlich gesagt ... Ich habe keine Ahnung, wo das Problem liegt. Im BIOS / GPT-Modus sollte GRUB seine core.img in die ef02/BIOS boot
Partition einbetten, nicht wahr ?
Bearbeiten
https://bbs.archlinux.org/viewtopic.php?id=144254 gilt hier nicht:
[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
grub
Paket nichtgrub-legacy
)./boot
Volume habe, besteht darin, die Daten am Anfang der Festplatte zu belassen (um ein anderes Problem zu verringern ...).grub
insgesamt entfernen . Und Sie können auch darauf verzichtenlvm
-bcache
ist ein viel einfacheres Mittel zur Handhabung eines SSD-Caching-Geräts. Übrigens - Sie brauchen keine separate/boot
- haben Sie diese bereits in Ihrer EFI-Systempartition. Setzen Sie Ihre initramfs und und Systemkern auf der esp in einigen Ordner, bind-mount diesen Ordner/boot
in/etc/fstab
und dann laden Sie einfach direkt den Kernel von Firmware ohne Zwischenbootloader überhaupt. Sie sind sowieso nur Kopfschmerzen. Wenn Sie Boot-Menüs wollen - alagrub
- etwas einfacher bekommen -rEFInd
ist schön.Antworten:
Hmm ... anscheinend war diese Zeile der Hinweis:
Zuvor hatte ich
btrfs
direkt auf/dev/sda
und installiert/dev/sdb
. Aus diesem Grund hatten beide einen FSTYPE und ein LABEL angebracht (wie in gezeigtlsblk
).Lösung: Ich habe jetzt beide
/dev/sda
und/dev/sdb
mithdparm
(Secure Erase) gelöscht. Es gibt wahrscheinlich einen besseren Weg, um diese Flags zu deaktivieren ... aber das hat bei mir funktioniert.quelle
dd
um nur die ersten und vielleicht letzten Megabyte zu löschen. Moot Point jetzt natürlich.Dies ist eines der besten Google-Ergebnisse für
Das Update für mich war, meine Bootdiskette (ich habe versucht, GRUB auf einer USB-Diskette zu installieren) mit dd zu löschen, wie ...
Und dann erstellen Sie eine neue Partitionstabelle, außer diesmal starten Sie sie einige Sektoren später als die Standardtabelle ...
Mit der neuen Partition und Partitionstabelle habe ich das Programm grub-install ausgeführt ...
quelle