Witam.
Na wstępie przepraszam za ilość kodu jaką tu wstawię, ale chyba jest on niezbędny i może dzięki temu ktoś z was zauważy błąd jaki robię i powie co należy poprawić.
Mam problem z partycjonowaniem przez fdisk. Nigdzie nie znalazłem w necie podobnego przypadku (albo nie wiem jak nazwać ten problem, żeby google znalazło odpowiedź), jak również nie rozumiem czemu fdisk tak reaguje i skąd to wynika. Dodatkowo powiem, że do tej pory używałem graficznych programów do partycjonowania i nigdy nie miałem problemów z założeniem odpowiedniej na dysku (być może te konsolowe wymagają dodatkowej wiedzy ).
Ale do rzeczy…
…próbuje utworzyć partycję na Pendrivie. Chciałem wypróbować konsolową aplikację fdisk, postępując zgodnie z jakimś poradnikiem i trochę na czuja. Ostatecznie tworze partycję i…okazuje się że dla Ubuntu ma ona nieznany system plików. Oto co robię (w przykładzie jest wybrany system plików dla Linux, ale próbowałem również Fat16/32, NTFS i efekt był identyczny):
root@lenar-ubuntu:~# fdisk /dev/sdb
UWAGA: tryb kompatybilności z DOS-em jest przestarzały. Zdecydowanie
zaleca się wyłączyć ten tryb (polecenie 'c') i zmienić jednostki
wyświetlania na sektory (polecenie 'u').
Polecenie (m wyświetla pomoc): n
Polecenie
e partycja rozszerzona
p partycja główna (1-4)
p
Numer partycji (1-4): 1
Pierwszy cylinder (1-1017, domyślnie 1):
Przyjęto wartość domyślną 1
Ostatni cylinder, +cylindrów lub +rozmiar{K,M,G} (1-1017, domyślnie 1017):
Przyjęto wartość domyślną 1017
Polecenie (m wyświetla pomoc): p
Dysk /dev/sdb: 2002 MB, bajtów: 2002780160
głowic: 62, sektorów/ścieżkę: 62, cylindrów: 1017
Jednostka = cylindrów, czyli 3844 * 512 = 1968128 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0xc3072e18
Urządzenie Rozruch Początek Koniec Bloków ID System
/dev/sdb1 1 1017 1954643 83 Linux
Polecenie (m wyświetla pomoc): w
Tablica partycji została zmodyfikowana!
Wywoływanie ioctl() w celu ponownego odczytu tablicy partycji.
Synchronizacja dysków.
root@lenar-ubuntu:~# mount /dev/sdb1 /media/USB/
mount: trzeba określić system plików
root@lenar-ubuntu:~#
Próba wskazania ręcznie systemu plików przy montowaniu przez "-t " też daje taki sam rezultat, a właściwie:
mount: niewłaściwy typ systemu plików, błędna opcja, błędny superblok na /dev/sdb1,
brak strony kodowej lub programu pomocniczego albo jeszcze inny błąd
W niektórych przypadkach przydatne informacje można
znaleźć w logu systemowym (np. dmesg | tail)
Jeśli w tym momencie otworze gparted dla tego urządzenia, otrzymuje info (w odpowiedniej kolumnie), że system plików nieznany (mimo że w fdisku został on konkretnie wskazany), ale jednocześnie widzi że jakaś partycja została założona. Następny krok to skasowanie istniejącej partycji i utworzenie nowej przez gparted i to udaje się bez problemów, a próba montowania przez
root@lenar-ubuntu:~# mount /dev/sdb1 /media/USB/
kończy się pełnym sukcesem (nawet jeśli pomijam -t żeby wskazać system plików). W tym momencie z ciekawości co tak naprawdę zrobił gparted, otwieram fdiska dla tego urządzenia i patrzę sobie jak on założył tą partycję i wygląda to tak:
root@lenar-ubuntu:~# fdisk /dev/sdb
UWAGA: tryb kompatybilności z DOS-em jest przestarzały. Zdecydowanie
zaleca się wyłączyć ten tryb (polecenie 'c') i zmienić jednostki
wyświetlania na sektory (polecenie 'u').
Polecenie (m wyświetla pomoc): p
Dysk /dev/sdb: 2002 MB, bajtów: 2002780160
głowic: 126, sektorów/ścieżkę: 10, cylindrów: 3104
Jednostka = cylindrów, czyli 1260 * 512 = 645120 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0xc3072e18
Urządzenie Rozruch Początek Koniec Bloków ID System
/dev/sdb1 2 3105 1954816 83 Linux
Polecenie (m wyświetla pomoc): q
root@lenar-ubuntu:~#
I teraz sedno problemu, ogromna zagadka i nie zrozumienie…czemu fdisk na początku dla pustego pendrive’a bez partycji oraz później po jej założeniu, odczytał liczbę głowic, sektorów, cylindrów tak:
Dysk /dev/sdb: 2002 MB, bajtów: 2002780160
głowic: 62, sektorów/ścieżkę: 62, cylindrów: 1017
Jednostka = cylindrów, czyli 3844 * 512 = 1968128 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0xc3072e18
a po założeniu partycji przez gparted już w ten sposób:
Dysk /dev/sdb: 2002 MB, bajtów: 2002780160
głowic: 126, sektorów/ścieżkę: 10, cylindrów: 3104
Jednostka = cylindrów, czyli 1260 * 512 = 645120 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0xc3072e18
:?: :shock:
Coś co jeszcze bardziej mnie zdziwiło, to to, że jeśli w tym momencie skasuje wszystko i założę partycję od nowa przez fdisk, wszystko działa, pod warunkiem, że skasuje i założę partycję bez wyłączania fdiska, tylko jakby w jednej sesji póki jakby widzi…prawidłowe dane :?
Ktoś jest w stanie wyjaśnić mi to zjawisko (pod warunkiem, że rozumie o co mi chodzi )