Problem z partycjonowaniem pod Ubuntu (fdisk, gparted)

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 :expressionless: ).

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 :stuck_out_tongue: )

Co do zakładania partycji przez fdisk - pamiętaj, że fdisk tworzy tylko partycję i nie tworzy na niej systemu plików. Po założeniu partycji trzeba jeszcze wykonać polecenie:

mkfs -t system_plków urządzenie

lub krócej

mkfs.system_plików urządzenie

W twoim przypadku prawdopodobnie będzie to:

mkfs -t ext3 /dev/sdb1

(na partycjach poniżej 10GB nie ma sensu tworzyć ext4, bo zajmie zbyt dużo dysku na swoje własne struktury).

Idąc dalej: Tak długo jak nie jest wykonane “sync” (synchronizacja dysków)/restart system pamięta jeszcze “starą partycję” i może ją zamontować.

Co do anomalii z ilością cylindrów - struktura pamięci flash różni się od tej z twardych dysków (a to do niej odnosi się układ głowica/cylinder itd.). Zresztą w dyskach twardych też odeszło się już od “fizycznego” znaczenia układu CHS i może on być dowolnie konfigurowany w zależności od potrzeb, o ile tylko pojemność dysku się zgadza (por. wiki).

No i teraz wszystko jasne. Ja kiedyś używałem dosowego fdiska i myślałem, że podobnie jak tamten, ten również od razu wszystko sam robi, że zakłada partycje, formatuje itd.

Dzięki OgiX za info, przydatną wiedza i dzięki za link, pokazuje pogląd na dyski i skąd co się bierze. Takiej odpowiedzi oczekiwałem, prosto szybko i na temat :slight_smile: Pozdrawiam

Na podobnej zasadzie działa GParted, najpierw tworzysz partycje i dopiero na utworzonych partycjach dopiero zakładasz system plików, GParted nie tworzy od razu gotowej partycji z system plików.

Pozdrawiam!