linux zmienia rozmiar bloku ext4 na 8192 teraz nie może go zamontować [duplikat]

3

To zrobiłem:

mkfs.ext4 -j -b 8192 /dev/sda3

Teraz próbuję zamontować go za pomocą:

sudo mount -t ext4 /dev/sda3 foo 

Ale otrzymuję ten błąd:

mount: wrong fs type, bad option, bad superblock on /dev/sda3

Jaki jest problem?

Frederico Schardong
źródło
Czy w danych dmesgwyjściowych są jakieś dodatkowe informacje ?
osgx

Odpowiedzi:

2

Jak wiem, taki ogromny blok nie jest obsługiwany na platformie x86. Problem polega na tym, że: ext * fs jest oparty na ogólnej strukturze VFS i nie może działać, gdy rozmiar bloku jest większy niż rozmiar strony (4096 na x86). Na Itanium i innych egzotycznych architekturach ze stronami pamięci> 4KB (ale nie na x86 / x86_64 ze stronami 2 MB lub 4 MB) taki blok może działać. Ten sam problem w systemie Linux dotyczy ufs2 o rozmiarze fragmentu> 4096.

Ta wiedza oparta jest na informacjach od jednego programisty UFS2 / Linux. Na listach jest też kilka liter, takich jak odpowiedź na pytanie

Cytując odpowiedź z „Andreas Dilger”

Linux wymaga rozmiaru bloków <= ROZMIAR_STRONY, więc w zasadzie wszystkie systemy plików używają rozmiaru blokowania <= 4096, chyba że implementują wewnętrznie obsługę odczytu / zapisu częściowych bloków dysku ze strony lub bufora bufora.

W ext2 / 3 możliwa jest zmiana liczby przydzielonych i-węzłów bez zmiany wielkości bloku (mniej i-węzłów na grupę bloków).

W przypadku UFS2 istnieje wyraźne sprawdzenie fragment_size <= 4096. Myślę, że w ext * fs jest taka sama kontrola.

Zasadniczo nie musisz ustawiać tak dużego rozmiaru bloków dla ext4, jeśli rozszerzenia są włączone. Zakresy są bardzo podobne do dużych bloków dla dużych plików. Dzięki rozszerzeniom będziesz mieć większą wydajność i mniej fragmentacji, ale nie są one obsługiwane (nie są kompatybilne z poprzednimi wersjami) w starszych jądrach Linuksa lub niektórych starszych sterownikach dla innych systemów operacyjnych, takich jak Windows.

osgx
źródło
Czy na moim x86 nie można mieć partycji o rozmiarze bloku większym niż 4096? Nawet jeśli to nie jest ext *?
Frederico Schardong,
Dotyczy to UFS1 / UFS2, ext2, sunVFS i podobnych fs. Każdy inny może działać lub nie działać. Jakie jest twoje zadanie? Jeśli chcesz zmniejszyć fragmentację, użyj ext4 z włączonym rozszerzeniem (zasięg jest jak ogromne bloki o zmiennej wielkości); jeśli chcesz użyć więcej miejsca na dysku twardym, graj z opcjami mkfs.
osgx
x86 może również obsługiwać ogromny rozmiar strony
phuclv
Linux VFS używa stron 4Kb wewnętrznie (logicznie), a nie stron „ogromnych”, „dużych”, „super” lub „PDPE1GB”. Twój komentarz nie dotyczy mojego problemu z VFS. Istnieje możliwość ponownego zaimplementowania docelowego FS w przestrzeni użytkownika i zamontowania go jako BEZPIECZNIK (lub poszukiwanie bezpiecznika ext4 lub bezpiecznika ufs2 i testowanie ich obsługi bloków / fragmentów o wielkości 8 kb).
osgx