Portál AbcLinuxu, 1. května 2025 14:31
sda
a sdb
a zmršil jsem si disk, ze kterého aktuálně běžel systém. Linux je třeba pochválit, že si s touto situací poradil dobře – i když si člověk podřízne větev, na které zrovna sedí, Linux funguje dál jako by nic – alespoň do restartu. Zase taková tragédie to není, ale nepříjemnost ano – to už tak bývá, když člověk myslí na tisíc dalších věcí a z nepozornosti dělá hloupé chyby. Dneska jsem se dostal k řešení, takže se s vámi o něj podělím – sice existuje řada návodů, ale třeba se někomu bude hodit, jak jsem na to šel já.
Nainstaloval jsem si nástroj testdisk
aptitude install testdiska pomocí něj zjistil, kde na původním disku začínal daný oddíl – byl to sektor 530145. Nechtěl jsem na disku provádět žádné změny a tak jsem si vytvořil loop zařízení pomocí příkazu:
losetup /dev/loop0 /dev/sdb -o 271434240Parametr
-o
je posun od začátku souboru v bajtech, tedy 271434240 = 530145*512 (velikost sektoru).
Tento oddíl je šifrovaný pomocí LUKS, takže bylo potřeba ho otevřít:
cryptsetup luksOpen /dev/loop0 sifrovanyDellJako
/dev/mapper/sifrovanyDell
je teď přístupné odšifrované blokové zařízení. To ale nemůžu rovnou připojit, protože je na něm LVM. Takže jsem si LVM doinstaloval:
aptitude install lvm2a pomocí
lvs
bylo hned vidět, jaké na něm jsou logické oddíly:
lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert root dell -wi--- 282,93g swap dell -wi--- 5,59gNa obvyklém místě v
/dev
ale nebyly k nalezení – pomocí lvscan
jsem zjistil, že nejsou aktivní:
lvscan inactive '/dev/dell/swap' [5,59 GiB] inherit inactive '/dev/dell/root' [282,93 GiB] inheritPomoc je jednocuchá:
vgchange -a y dell 2 logical volume(s) in volume group "dell" now activeA disky už jsou tam, kde mají být:
ll /dev/dell/ celkem 0 drwxr-xr-x 2 root root 80 2010-05-14 14:22 ./ drwxr-xr-x 19 root root 4100 2010-05-14 14:22 ../ lrwxrwxrwx 1 root root 19 2010-05-14 14:22 root -> ../mapper/dell-root lrwxrwxrwx 1 root root 19 2010-05-14 14:22 swap -> ../mapper/dell-swapPřipojení původního oddílu:
mount /dev/dell/root /mnt/dell-root/Data jsem si zazálohoval a všechno dobře dopadlo
Tiskni
Sdílej:
Smazali (přepsali) jste si někdy omylem tabulku oddílů disku?Chybí mi tam možnost "odpálil mi ji instalátor Windows".
Tenhle software ještě někdo používá?Zjevně ano. Jak moc je to závažné, nedokážu posoudit. Mně se to nikdy nestalo, ale kvůli někomu jsem si musel napsat prográmek, který mi smazané partitions našel. Ono to s Windows není až zas tak jednoduchý. On ten jejich fdisk totiž při smazání oddílu jeho začátek nějak nakurví… Už si to nepamatuju. Musel bych se podívat do zdrojáků.
Tenhle software ještě někdo používá?
Na nekterých pocitačích bohužel jo... vendor lock in
podařilo splést sda a sdbJéé, tobě taky? Mně před týdnem
\e[0;31m\u\e[0m|\h \w \$> \e[1;31m
cd /mnt/flashka; ./update-installation.sh
Takovej skript by se mi celkem hodil.V podstatě stačí z image CDčka vykopírovat soubory, provést nějaké drobnosti a publikovat to přes rsync.
A proč přešels na syslinux?Protože se mi nechtělo studovat, jak udělat v GRUBu tu hezkou nápovědu. A také nevidím v GRUBu žádnou výhodu proti syslinuxu. Stačí mi zavádět jenom to System Rescue CD, už nepotřebuju instalátor Debianu (používám debootstrap).
třeba jen proto, že spousta lidí prostě použije dlouhá jména v češtině apod.A v čem je problém? Já české/dlouhé názvy souborů v Linuxu na FAT32/NTFS discích přečtu.
Ano, data už jsem neobnovilNa desktope až taký pozor nedávam
fdisk
najít jeho relativní číslo na partition, přes debugfs
najít, o jaký jde soubor a případně přepsat celý blok.
Jenže při nadměrném používání dd
s parametry skip
a seek
, do toho použitím /dev/sda
jednou, /dev/sdaX
podruhé, jsem se párkrát spletl a parametry zamíchal. Ve výsledku jsem si asi 10x přemazal 4 kB kdesi na disku (doteď nevím kde) a úplně náhodou se trefil i do partition tabulky :)
Nakonec mi pomohl až sfdisk
, z jiného stroje jsem udělal dump tabulky do textového souboru a ručně ho naprasil, tedy upravil tak, jak jsem to měl mít. Čísla začátků a konců jsem zjistil ze scrollbacku Konsole (díky bohu za možnost neomezené délky). Nakonec opačným parametrem tabulku zpátky "naimportoval".
Teď mám soubor s tabulkou kdesi zazálohovaný, takže až zase budu opravovat vadné sektory, raději si ho připravím ;)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.