FreeBSD i rozmemłana partycja

Autor , 09.05.2010 20:37

Wydarzenia ostatnich dni nauczyły mnie, że diabeł nie śpi i w każdej chwili gotów jest zawrócić w głowie porządnej dziewczynie… :)

Gdy po pomyślnej instalacji FreeBSD (tak, wiem co to VirtualBox), zamiast menu bootloadera zobaczyłem ciemność, to dość szybko zrozumiałem, że określenie „pomyślna” było odrobinę na wyrost. Krótkie śledztwo wykazało, że zbyt pochopnie zawierzyłem w możliwości instalatora. Ten dobrał sobie inną liczbę głowic (16) niż inne systemy (255) a następnie, bazując na tym, zapisał własną wersję tablicy partycji. A ja, że nie zwróciłem uwagi na to, jakie parametry sobie ustalił to i miałem dodatkową pracę.

Polecenie fdisk -l /dev/sda zeznało:

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical / optimal IO): 512 bytes / 512 bytes
Disk identifier: 0x9e589e58

Device Boot Start End Blocks Id System
/dev/sda1 * 1 4740 38074018+ 7 HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 4741 9721 40009882+ a5 FreeBSD
Partition 1 does not end on cylinder boundary.
/dev/sda3 9722 14702 40009882+ bf Solaris
Partition 3 does not end on cylinder boundary.
...

Rozwiązanie ” po wszystkim ” okazało się proste. Pomogło powtórne zapisanie tablicy partycji (już z właściwymi parametrami CHS). Na początku warto upewnić się, że nic nie wykorzystuje dysku (np. Ubuntu w wersji „live” wykorzystuje znaleziony swap, na to wystarczy swapoff -a).

Za pomocą sfdisk zrzucamy dane o partycjach i od razu wczytujemy je z powrotem. Plik utworzony za pomocą parametru -O (kopia zmienionych sektorów, do odtworzenia za pomocą parametru -I) powinniśmy zachować gdzieś na boku, przyda się na wypadek, gdyby poniższe polecenia narobiły więcej szkody niż pożytku:

sfdisk -d /dev/sda > sda.txt
sfdisk /dev/sda -O sda-partition.save < sda.txt

Jak widać, fdisk -l /dev/sda przekazuje nam już lepsze wieści:

Device Boot Start End Blocks Id System
/dev/sda1 * 1 4740 38074018+ 7 HPFS/NTFS
/dev/sda2 4741 9721 40009882+ a5 FreeBSD
/dev/sda3 9722 14702 40009882+ bf Solaris
...

W moim przypadku wymusiłem jeszcze, na wszelki wypadek, powtórną instalację gruba (grub-install /dev/sda) więc nie potrafię powiedzieć czy była ona konieczna czy nie. O tym, jak GRUB2 radzi sobie z FreeBSD - następnym razem.

Uwagi:

  • Jeśli ktoś zechce być sprytnym, przygotować partycję dla FreeBSD spod już wykorzystywanego systemu a instalatorowi pozostawić tylko skonfigurowanie disklabela, to to nie zadziała. Tzn. instalator i tak wsadzi paluszki w partycję i narobi kłopotów.
  • Nie wiem jak innym, ale reklamowany tu i ówdzie TestDisk zaproponował mi usunięcie wszystkiego i utworzenie czegoś, czego nigdy na tym dysku nie było. Skoro u innych działa to pewnie u mnie zgłupiał od nadmiaru eksperymentów.

Skomentuj wpis

Panorama Theme by Themocracy