[+] Nie startuje po aktualizacji (DEBIAN 12 + LUKS + GRUB)
: 30 stycznia 2024, 11:15
DziękiMam pełną instalację (nie live) debiana 12 na dysku Sandisk USB flash (pendrive)
Całość zaszyfrowana LUKS. Do czasu ostatniej aktualizacji systemu działało (hehehe)
Obecnie nie bootuje z pendrive, czarny ekran, żadnych komunikatów, brak pytania o hasło
Maszyna do której podpiąłem dysk flash USB ma nazwę vdeb
root@vdeb:~# pwd
/root
root@vdeb:~# lsusb | grep -i sandisk
Bus 002 Device 002: ID 0781:55a3 SanDisk Corp. SanDisk 3.2Gen1
czyli urządzenie jest wykrywane
root@vdeb:~# lsblk /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 1 57,3G 0 disk
├─sdc1 8:33 1 300M 0 part /media/h3x/boot_sdc1
├─sdc2 8:34 1 22,9G 0 part
└─sdc3 8:35 1 34,1G 0 part
i widoczne w systemie na którym dokonuję naprawy (wirtualka) jako /dev/sdc
root@vdeb:~# blkid /dev/sdc*
/dev/sdc: PTUUID="88df9bac-0260-4746-ba58-4f23e119dc5b" PTTYPE="gpt"
/dev/sdc1: UUID="034C-992C" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="204ea28a-ab7a-a74e-82bb-e2c426cba611"
/dev/sdc2: UUID="af9e08f5-5249-4506-9a02-b0ef4d6b2cea" TYPE="crypto_LUKS" PARTLABEL="root" PARTUUID="a758ccd6-25fa-504b-bad6-7fb19dc40eac"
/dev/sdc3: UUID="11902504-6160-4ecb-8685-000ed7df2c22" TYPE="crypto_LUKS" PARTUUID="051d5e21-a2f5-0c45-85a7-2ee2a79e32b6"
po zweryfikowaniu widać że /dev/sdc2 oraz /dev/sdc3 są partycjami zaszyfrowanymi przy urzyciu LUKS
utworzyłem katalogi dla tymczasowych punktów montowania pamięci zewnętrznej
root@vdeb:~# mkdir -p /media/h3x/boot_sdc1
root@vdeb:~# mkdir -p /media/h3x/odszyfrowany_sdc2
root@vdeb:~# mkdir -p /media/h3x/odszyfrowany_sdc3
Zamontowałem partycję sdc1 (vfat) w katalogu /media/h3x/boot_sdc1
root@vdeb:~# mount /dev/sdc1 /media/h3x/boot_sdc1/
oraz wyświetliłem jej zawartość (jak widać poniżej katalog boot jest pusty! Czy tak ma być?)
root@vdeb:~# tree /media/h3x/boot_sdc1/
/media/h3x/boot_sdc1/
└── EFI
├── boot
└── Debian
├── BOOTX64.CSV
├── fbx64.efi
├── grub.cfg
├── grubx64.efi
├── mmx64.efi
└── shimx64.efi
Poniżej zawartość grub.cfg z tej partycji
root@vdeb:~# cat /media/h3x/boot_sdc1/EFI/Debian/grub.cfg
cryptomount -u af9e08f5524945069a02b0ef4d6b2cea
search.fs_uuid f2c073af-552a-4686-ac1d-0768acecd9f5 root cryptouuid/af9e08f5524945069a02b0ef4d6b2cea
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
oraz BOOTX64.CSV
root@vdeb:~# cat /media/h3x/boot_sdc1/EFI/Debian/BOOTX64.CSV
shimx64.efi,debian,,This is the boot entry for debian
odszyfrowałem partycje
root@vdeb:~# cryptsetup luksOpen /dev/sdc2 odszyfrowany_sdc2
Hasło dla /dev/sdc2:
root@vdeb:~# cryptsetup luksOpen /dev/sdc3 odszyfrowany_sdc3
Hasło dla /dev/sdc3:
odświeżmy widok
root@vdeb:~# lsblk /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 1 57,3G 0 disk
├─sdc1 8:33 1 300M 0 part /media/h3x/boot_sdc1
├─sdc2 8:34 1 22,9G 0 part
│ └─odszyfrowany_sdc2 254:3 0 22,9G 0 crypt
└─sdc3 8:35 1 34,1G 0 part
└─odszyfrowany_sdc3 254:4 0 34,1G 0 crypt
Zamontowałem odszyfrowany sdc2 do wcześniej utworzonego folderu
root@vdeb:~# mount /dev/mapper/odszyfrowany_sdc2 /media/h3x/odszyfrowany_sdc2
uffffff działa skopiowałem ważne dla mnie dane, bo backup jest dla mięczaków i oczywiście go nie miałem
zaczynam podejście do naprawy grub
poniżej główne drzewo plików odszyfrowanej partycji
root@vdeb:~# tree -L 1 /media/h3x/odszyfrowany_sdc2
/media/h3x/odszyfrowany_sdc2
├── bin -> usr/bin
├── boot
├── crypto_keyfile.bin
├── dev
├── etc
├── home
├── initrd.img -> boot/initrd.img-6.1.0-17-amd64
├── initrd.img.old -> boot/initrd.img-6.1.0-15-amd64
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
├── var
├── vmlinuz -> boot/vmlinuz-6.1.0-17-amd64
└── vmlinuz.old -> boot/vmlinuz-6.1.0-15-amd64
Podsumowanie przed dalszymi pracami
grub na sdc1
system na sdc2
niepodmontowany swap na sdc3
root@vdeb:~# blkid /dev/sdc* /dev/mapper/odszyfrowany*
/dev/sdc: PTUUID="88df9bac-0260-4746-ba58-4f23e119dc5b" PTTYPE="gpt"
/dev/sdc1: UUID="034C-992C" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="204ea28a-ab7a-a74e-82bb-e2c426cba611"
/dev/sdc2: UUID="af9e08f5-5249-4506-9a02-b0ef4d6b2cea" TYPE="crypto_LUKS" PARTLABEL="root" PARTUUID="a758ccd6-25fa-504b-bad6-7fb19dc40eac"
/dev/sdc3: UUID="11902504-6160-4ecb-8685-000ed7df2c22" TYPE="crypto_LUKS" PARTUUID="051d5e21-a2f5-0c45-85a7-2ee2a79e32b6"
/dev/mapper/odszyfrowany_sdc2: UUID="f2c073af-552a-4686-ac1d-0768acecd9f5" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/odszyfrowany_sdc3: LABEL="swap" UUID="fd6e021f-7be2-4f0b-8a91-c1257e6ce3ac" TYPE="swap"
root@vdeb:~# lsblk /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 1 57,3G 0 disk
├─sdc1 8:33 1 300M 0 part /media/h3x/boot_sdc1
├─sdc2 8:34 1 22,9G 0 part
│ └─odszyfrowany_sdc2 254:3 0 22,9G 0 crypt /media/h3x/odszyfrowany_sdc2
└─sdc3 8:35 1 34,1G 0 part
└─odszyfrowany_sdc3 254:4 0 34,1G 0 crypt
pora na naprawę grub
chroot na system zainstalowany na pendrive
root@vdeb:~# mount -o bind /proc /media/h3x/odszyfrowany_sdc2/proc/
root@vdeb:~# mount -o bind /dev /media/h3x/odszyfrowany_sdc2/dev/
root@vdeb:~# mount -o bind /sys /media/h3x/odszyfrowany_sdc2/sys
root@vdeb:~# chroot /media/h3x/odszyfrowany_sdc2 /bin/bash
root@vdeb:/# pwd
/
if [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]; then echo "jest chroot!"; fi;
jest chroot!
No i teraz pytanie zasadnicze, jak to zrobić, żeby nie strzelić sobie w stopę?
Korci mnie aby wykonać update-grub, ale skąd biedny system ma wiedzieć że chodzi o /dev/sdc1 a nie dowolną inną partycję. Mogę niby wziąść live iso, ale chodzi by się czegoś dodatkowo dowiedzieć.
Nie chciał bym uszkodzić systemu na którym naprawiam (vdeb). Niby wirtualka (jest snapshot), ale wiecie ujma na honorze
Poza tym zasadniczo nie wykonuję poleceń jeżeli nie jestem pewnien co robią i jak zadziałają
Potrzebuję małego objaśnienia jak w końcu działa ten grub i jak naprawić to w moim przypadku.
Andy