Re: Redundant booten zonder hardware raid
On Tue, Oct 08, 2024 at 11:36:49AM +0200, Paul van der Vlis wrote:
> Hallo,
>
> Op 07-10-2024 om 22:25 schreef Paul van der Vlis:
> > Hoi,
> >
> > Op 07-10-2024 om 17:50 schreef Paul van der Vlis:
> > > Hallo,
> > >
> > > Ik gebruik op mijn servers geen hardware raid,
Waarschijnlijk wordt RAID bedoelt. https://en.wikipedia.org/wiki/RAID
Lees ook https://en.wikipedia.org/wiki/Standard_RAID_levels
> > > maar wil toch graag redundant kunnen booten.
Misschien begrijp ik de wens ...
> > > Ik heb de indruk dat hardware raid steeds minder gebruikt wordt,
> > > bijvoorbeeld bij beheerders die LVM gebruiken voor RAID, of een
> > > filesysteem wat direct access wil tot de schijf zoals ZFS of BTRFS.
> > >
> > > Nu heb ik begrepen dat dit te realiseren is door:
> > >
> > > - de ESP partitie tussen beide schijven synchroon te houden.
> > >
> > > - "grub-install ..." op het tweede device uit te voeren, en dit
> > > wellicht ook te doen na een na een kernel upgrade. Ik las dat dit
> > > ook zou kunnen met een hook in /etc/kernel/postinst.d/ .
> > >
> > > - "evibootmgr ..." te gebruiken om ervoor te zorgen dat er twee
> > > mogelijkheden tot booten zijn in het bios. Wellicht moet dit
> > > regelmatig, of opnieuw na een wijziging. Als ik het goed begrijp is
> > > ef
> > > het mogelijk om eerst de ene entry, en dan de andere te laten proberen.
> > >
> > > Heeft iemand hier er ervaring mee?
> >
> > Ik vond hier een scriptje. Zal het echt zo simpel zijn?
> >
> > https://gist.github.com/grifferz/f262591f59e4f8c199a8b0619bc6a667/raw/e36bf234e63bfaf29d3cf1ba38a9ccc45dbb32b0/sync-esps.sh
> >
> > #!/bin/sh
> >
> > # Keep two different EFI System Partitions (ESP) in sync, because it's 2021 and
> > # EFI still doesn't support software RAID properly. The idea being to add boot
> > # entries for both:
> > #
> > # $esp1/grubx64.efi
> > #
> > # …and:
> > #
> > # $esp2/grubx64.efi
> > #
> > # …using efibootmgr, and then either can be used to boot from.
> > #
> > # This script is then called after every package update to see if the main ESP
> > # ($esp1) needs to be synced to the secondary one.
> > #
> > # You configure that by making a file like /etc/apt/apt.conf.d/100sync-esps
> > # containing:
> > #
> > # DPkg::Post-Invoke { "/usr/local/sbin/sync-esps.sh"; };
> > #
> > # That will run it after every time an apt tool (any of them) calls "dpkg".
> > #
> > # Based on script by Sven Hartge:
> > # https://lists.debian.org/debian-user/2020/11/msg00458.html
> >
> > esp1="/boot/efi/EFI/debian/"
> > esp2="/boot/efi2/EFI/debian/"
> >
> > if [ -d "$esp1" ] && [ -d "$esp2" ]; then
> > if ! diff -rq "$esp1" "$esp2"; then
> > printf "%s differs from %s; syncing…\\n" "$esp1" "$esp2"
> > rsync -rv "$esp1" "$esp2"
> > printf "Done.\\n"
> > exit 0
> > fi
> > else
> > printf "I don't seem to have both ESPs (%s and %s) mounted\\n" \
> > "$esp1" "$esp2"
> > printf "Run %s again once you've sorted it out.\\n" "$0"
> > exit 1
> > fi
> >
>
> Heel raar, ik hoefde helemaal niet te synchroniseren. De gegevens stonden al
> zowel in /dev/sda1 als in /dev/sda2 !
> Zal Debian dat vanzelf doen, als het twee EFI-partities ziet?
>
> Een beetje meer uitleg, dit heb ik gedaan:
> mkdir /boot/efi2
> blkid /dev/sdb1 # het UUID uitzoeken
> echo "UUID=10D9-5FD8 /boot/efi2 vfat umask=0077 0 1" >> /etc/fstab
> systemctl daemon-reload
> mount -a
>
> En toen stonden de gegevens zowel in /boot/efi als in /boot/efi2 !
Any sufficiently advanced technology is indistinguishable from magic.
Mijn vertaling: Echte high tech is pure tovenarij.
Mijn punt: Computers zijn complexer dan hamers.
> Toen ben ik wat met efibootmgr aan het spelen geweest:
> efibootmgr # geeft informatie
> # maak extra boot-entry:
> efibootmgr -c -d /dev/sdb -p 1 -L "debian2" -l '\EFI\debian\grubx64.efi'
> efibootmgr # geeft weer informatie
> efibootmgr -b 0004 -B # verwijderd een entry
> efibootmgr -o 0000,0005 # bepaald boot-volgorde
>
> Nu had ik gehoopt om een "debian2" als optie in het bios te vinden, en dat
> is ook wel zo, maar niet in de lijst met boot devices.
>
> Wel kan ik het kiezen bij de "UEFI hard disk drive priorities", maar daar
> moet ik kiezen tussen "debian" en "debian2", terwijl ik graag wou dat hij
> eerst "debian" probeert, en als dat niet lukt "debian".
> Ik weet niet zeker of hij dat nu doet.
>
> Maar als ik de eerste disk (was sda) verwijder
Dat is een goede test. ( Please accept the compliment. )
> lijkt het zo in eerste instantie hoopvol,
> het boot van de tweede (was sdb). Ik zie grub en dat
> laadt initramfs.
Mijn inziens is de oorspronkelijke wens, redundant kunnen booten, vervult.
Weet dat ik wens niet begreep. Misschien ook wel, maar dan kom ik uit
bij een onredelijke wens.
> Daarna een pause, wellicht omdat een aantal partities niet
> gevonden worden.
>
> Maar dan krijg ik een initramfs prompt, wat volgens mij betekent dat het
> root filesysteem niet kan worden geladen. Ik gebruik voor de root de raid1
> functies van LVM, wellicht is daar nog iets mis. Nu even geen tijd meer,
> maar als iemand nog iets zinnig weet, dan graag.
Maak twee tekeningen.
Op de ene tekening twee rechthoeken. Elke rechthoek is een disk.
En dan vul je aan met "partities", "logical volumes" en "physical extends".
De andere tekening wordt een ketting. Elke schakel is een stap uit het
gehele boot proces.
Tip: Gewoon met pen op papier. (Blijf weg bij tekenprogrammas waar je
normaal ook niet komt.)
> Groet,
> Paul
Groeten
Geert Stappers
P.S.
Voor mij is deze thread klaar.
--
Silence is hard to parse
Reply to: