Zadałem tutaj pytanie dotyczące ext4lazyinit . Z tego, co przeczytałem i zrozumiałem, po prostu pozwala rozpocząć korzystanie z dysku twardego bez tworzenia wszystkich i-węzłów dla systemu plików.
Jedynym sposobem, aby wiedzieć, czy środek może monitoruje ext4lazyinit
się iotop
. Czy istnieje sposób na uzyskanie postępu w procentach?
Odpowiedzi:
Sprawdź tę dyskusję o łatce . Możesz zainicjalizować system bez lazyinit, ale nie możesz go zmierzyć. Jeśli masz czas czekać, po prostu poczekaj. Możesz wypróbować łatkę z dyskusji, ale według Patchwork ma ona stan „odrzucony”.
źródło
Wydaje mi się, że znalazłem sposób na przybliżenie postępu ext4lazyinit.
TL; DR: patrz Skrypt poniżej.
Ta metoda zakłada, że dysk nigdy nie został odłączony (ani system nie został ponownie uruchomiony) od pierwszego podłączenia partycji i że zapisałeś dokładnie tyle danych na partycji, ile jest na niej użytych (więc nie ma możliwości usunięcia lub modyfikacja plików).
Krok 1 : Porównaj rozmiar partycji w fdisk (przekonwertowany na kiB) z liczbą bloków 1K pokazanych w df. Odejmij (liczbę bloków 1K) od (rozmiar partycji w kiB), aby uzyskać (przybliżony rozmiar tabeli i-węzłów).
EDYCJA: Przykład, fdisk:
df:
11720976351 sektorów * 512 bajtów / sektor / 1024 = 5860488175,5 kiB (prawie 5,5 TiB, jak mówi fdisk). 5813233164 firmy Minus df równa się 47255011,5 kiB (około 45 GiB) dla przybliżonego rozmiaru tabeli i-węzłów.
Krok 2 : Pobierz (całkowita kiB zapisana na partycję):
Wybierz odpowiednią linię dla swojej partycji i przekonwertuj ją na kiB.
EDYCJA: przykład:
Używając sdd1 w moim przypadku, całkowita liczba zapisanych kiB = 2530108940 sektorów * 512 bajtów / sektor / 1024 = 1265054470 kiB (prawie 1,2 TiB).
Krok 3 : Potrzebny tylko, jeśli już zapisałeś jakiekolwiek dane w systemie plików. Odejmij (liczba WYKORZYSTYWANYCH bloków 1K, pokazane w df) od (całkowite kiB zapisane do partycji), aby uzyskać (przybliżone kiB zapisane do tabeli i-węzłów).
EDYCJA: przykład: przybliżone kiB zapisane do tabeli i-węzłów = 1265054470 (z kroku 2) - 1217095176 (patrz wyjście df w kroku 1) = 47959294 kiB (45,7 GiB)
Krok 4 : Podziel (przybliżone kiB zapisane do tabeli i-węzłów) przez (przybliżony rozmiar tabeli i-węzłów w kiB) i pomnóż przez 100, aby uzyskać postęp jako procent.
EDYCJA: przykład: przybliżony postęp = 47959294 / 47255011,5 * 100% = 101,5%
Scenariusz
Lub napisać to jako skrypt częściowy (ze względów bezpieczeństwa odmawiam skryptu wywołania fdisk):
Wywołaj za pomocą $ 1 = „nazwa partycji” (np. Sdd1), $ 2 = „sektory partycji według fdisk”, $ 3 = „punkt montowania bez końcowego ukośnika”
Wyniki testu
Metodę przetestowałem tylko raz. Ustawiać:
Partycja 6 TB
szyfrowanie przy użyciu cryptsetup
system plików utworzony z domyślnymi parametrami oprócz -m 0
279 GiB plików zapisanych na partycji przed zakończeniem ext4lazyinit.
Wynik : odczyt 99,7% w momencie ukończenia :-)
EDYCJA: ten sam dysk, po zapisaniu prawie innego TiB danych, daje teraz szacunkową wartość 101,5%. Myślę, że jest wystarczająco dokładny, aby był użyteczny.
źródło