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
n
p
rimary/l
ogical/e
rozšíř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
fdisk
ale musel použítgdisk
místo toho. gdisk
funguje v podstatě stejně jakofdisk
kromě toho není potřeba zadávatu
pro 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/block
souborový 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.