Rozsahy oddílů lze číst z /sys/block/sda/sda1/start , /sys/block/sda/sda1/size a tak dále. Hodnoty jsou v sektorech. Tyto hodnoty si zapište, než uděláte cokoliv jiného, zejména restartování.
Jakmile budete mít hodnoty, můžete znovu vytvořit oddíly pomocí fdisk . Použijte u přepněte jednotku na sektory a poté vytvořte oddíly zadáním
nprimary/logical/erozšířen- Číslo oddílu (kromě logických oddílů:dělejte je v pořadí)
- počáteční sektor
+velikost v sektorech
Od položení otázky uplynuly téměř dva roky. Včera jsme byli v úplně stejné situaci:Máme Linux Software RAID Level 1 se 2 disky. Jeden z disků se porouchal a musel být vyměněn. Nechali jsme vyměnit disk a pak jsme chtěli zkopírovat tabulku oddílů ze zbývajícího (pracovního) disku na nový disk. Bohužel jsme zkopírovali prázdnou tabulku oddílů z nového disku na starý disk. Naštěstí jsme to okamžitě objevili před restartováním počítače, takže správná tabulka oddílů byla v jádře stále aktivní. Pro vyřešení problému jsme udělali následující:
- Ze
/sys/block/jsme extrahovali data oddílu souborový systém, jak je popsáno v Gillesově odpovědi. - Náš systém používá tabulku oddílů GUID, takže jsme nemohli použít
fdiskale musel použítgdiskmísto toho. gdiskfunguje v podstatě stejně jakofdiskkromě toho není potřeba zadávatupro sektory.- Vytvořili jsme oddíly s přesným data extrahovaná z
/sys/block/. Existují další odpovědi na podobné otázky, které říkají, že je třeba zmenšit velikost oddílu o jednu, ale to pro nás nebylo nutné. - U tabulky oblastí guid již není rozdíl mezi primárními a rozšířenými oblastmi.
sys/blocksouborový systém neobsahuje žádné informace o typech souborových systémů, takže jsme je extrahovali pomocímount.- U tabulky oddílů guid již není příznak spouštění. Pokud je tabulka oddílů k obnovení ze spouštěcího disku, musí existovat oddíl typu
BIOS boot partition(obvykle první oddíl).
Po zapsání tabulky oddílů pomocí gdisk , podařilo se nám restartovat systém a vše běželo v pořádku.