Jak uszkodziłem FS btrfs
29.04.2024 | aktual.: 29.04.2024 11:36
Starałem się zmniejszyć zużycie pamięci na /. W tym celu wydałem btrfs balance start /. Ponieważ było późno, to postanowiłem uruchomić program do zamknięcia systemu.
while [[ "`ps aux | grep 'btrfs balance start /' | wc -l`" == 2 ]]; do sleep 10; done; /bin/shutdown -h now
System się wyłączył, ale przy następnej próbie zalogowania, pojawiają się komunikaty, że system plików jest wyłącznie do odczytu. Spodziewam się, że operacja nie została wykonana do końca. Błąd musi leżeć w poleceniu do zamknięcia systemu, gdy btrfs miał zakończyć pracę. Ale gdzie... ?
Problemem wydaje się być to, że sprawdzamy czy lista znalezionych procesów, których command line pasuje do btrfs balance start / wynosi 2. Trzeba pamiętać, że mamy nasz proces, i utworzone polecenie grep. Tylko, że to wygląda w porządku. Nie pomyślałem o jednym - btrfs może utworzyć proces potomny. Prawdopodobnie tak było, i to jest przyczyną. Teraz kopiuję dane i stawiam system plików montowany pod / na nowo. Po skopiowaniu danych, spróbuję najpierw przywrócić system z migawki - w końcu nic nie stracę.