Grub-Installation: Das Einbetten in Bios / GPT ist nicht möglich


7

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 GRUBnicht 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 GRUBbei der Installation im BIOS/GPTModus anscheinend erforderlich ist .

MDADM

Da ich zwei Festplatten habe, möchte ich sie in einem RAID1Array 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 LUKSVolume ü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

BtrfsSnapshots 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, LVMdie SSD lvmcachespä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

( ext4wurde für den Start ausgewählt, weil btrfssich ü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 GRUBmeinen Bootloader entschieden, da er alle von mir verwendeten Geräte unterstützen soll.

Verweise:

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.

( --debugAusgabe 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 bootPartition 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

Sie sollten Grub2 verwenden ...
— Frostschutz

@frostschutz Ich bin mir ziemlich sicher, dass ich Grub2 benutze ( grubPaket nicht grub-legacy).
— Für den

@derobert Grub2 sollte in der Lage sein, verschlüsselte Boot-Partitionen zu verarbeiten, wie hier ersichtlich . Der einzige Grund, warum ich ein separates /bootVolume habe, besteht darin, die Daten am Anfang der Festplatte zu belassen (um ein anderes Problem zu verringern ...).
— Für den

@Florian wow, das wusste ich nicht. Nett. [Übrigens: Ich werde meine nicht so nützlichen Kommentare löschen.]
— derobert

Sie sollten grubinsgesamt entfernen . Und Sie können auch darauf verzichten lvm- bcacheist 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 /bootin /etc/fstabund dann laden Sie einfach direkt den Kernel von Firmware ohne Zwischenbootloader überhaupt. Sie sind sowieso nur Kopfschmerzen. Wenn Sie Boot-Menüs wollen - ala grub- etwas einfacher bekommen - rEFIndist schön.
— Mikeserv

Antworten:


5

Hmm ... anscheinend war diese Zeile der Hinweis:

grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..

Zuvor hatte ich btrfsdirekt auf /dev/sdaund installiert /dev/sdb. Aus diesem Grund hatten beide einen FSTYPE und ein LABEL angebracht (wie in gezeigt lsblk).

Lösung: Ich habe jetzt beide /dev/sdaund /dev/sdbmit hdparm(Secure Erase) gelöscht. Es gibt wahrscheinlich einen besseren Weg, um diese Flags zu deaktivieren ... aber das hat bei mir funktioniert.


2
Sie könnten wahrscheinlich zB verwenden, ddum nur die ersten und vielleicht letzten Megabyte zu löschen. Moot Point jetzt natürlich.
— Derobert

Ja ... habe zuerst darüber nachgedacht ... aber dann etwas über die Secure Erase-Funktionen herausgefunden :)
— 2.

0

Dies ist eines der besten Google-Ergebnisse für

grub-install: error: embedding is not possible, but this is required for RAID and LVM install.

Das Update für mich war, meine Bootdiskette (ich habe versucht, GRUB auf einer USB-Diskette zu installieren) mit dd zu löschen, wie ...

dd if=/dev/zero of=/dev/sdd bs=1M status=progress

Und dann erstellen Sie eine neue Partitionstabelle, außer diesmal starten Sie sie einige Sektoren später als die Standardtabelle ...

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)

Mit der neuen Partition und Partitionstabelle habe ich das Programm grub-install ausgeführt ...

grub-install --force --skip-fs-probe /dev/sdd
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.