Jak mogę sprawdzić / dev / xvda1?

60

Widzę przy logowaniu do instancji EC2 (Ubuntu)

*** /dev/xvda1 should be checked for errors ***

Nie mogę, fsck /dev/xvda1ponieważ jest zamontowany i sudo umount /dev/xvda1nie działa, ponieważ jest w użyciu. lsofprzedstawia

jbd2/xvda  172               root  cwd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  rtd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  txt   unknown                                        /proc/172/exe

i kill -SIGKILL 172jest nieskuteczny.

Co robić?

użytkownik1836587
źródło
Czy możesz ustawić / dev / xvda1 na „noauto” w fstab i zrestartować komputer?
Nils Toedtmann
W przypadku Ubuntu zobacz odpowiedź na askubuntu.com/a/548772/184435
danorton

Odpowiedzi:

51

Większość Linuksów w dzisiejszych czasach powinna wykonać wymuszony fsck podczas uruchamiania, gdy plik / forcefsck jest obecny w systemie. Jeśli możesz zrestartować maszynę wirtualną, uruchom

touch /forcefsck

Następnie uruchom ponownie komputer w dogodnym dla Ciebie momencie

Sgaduuw
źródło
95

W naszym przypadku ec2 ubuntu powyższe odpowiedzi nie działały całkowicie.

W systemie Ubuntu kontrola domyślnie nie jest włączona w pliku rcS . Więc

  1. Edytuj plik rcS sudo vi / etc / default / rcS

poniżej linii

#FSCKFIX=no

Dodaj

FSCKFIX=yes
  1. Edytuj plik fstab. sudo vi / etc / fstab

Poszukaj rekordu dla / i jeśli ostatnią cyfrą jest „0”, zmień go na „1”. Ostatnie pole to fsckorder i jest używane przez fsck do ustalenia kolejności sprawdzania dysków. Jeśli wartość wynosi „0”, dysk jest pomijany .

Na przykład

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 0

do

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 1 
  1. Utwórz plik / forcefsck

    sudo touch / forcefsck

Uruchom ponownie z konsoli ec2.

Przywróć wartość fsckorder z „1” na „0” w / etc / fstab Usuń wiersz, FSCKFIX=yesaby przywrócić plik rcS do pierwotnego stanu.

Mam nadzieję, że to pomoże.

krishnakumarp
źródło
5
To zadziałało dla mnie. Samo wykonanie polecenia „touch / forcefsck” nie rozwiązuje problemu, musiałem również włączyć FSCKFIX.
Florin Andrei
1
To samo tutaj; samo działanie sudo touch /forcefsckprzed ponownym uruchomieniem nie działało w systemie Ubuntu 14.04, ale odpowiedź brzmiała.
Teemu Leisti,
Musiałem zrobić jeszcze jeden krok - modyfikację pliku / etc / fstab, jak opisano tutaj: nathanpfry.com/… To dziwne, ponieważ ostatnim razem, kiedy to się stało, skorzystałem z twojej odpowiedzi i zadziałała jak jest.
childofsoong
2
Dzięki, rozwiązało to dla mnie wystąpienie ec2 z AWS. Nie musiałem ponownie uruchamiać się z konsoli, proste sudo rebootrozwiązanie z twoimi zmianami rozwiązało ten problem.
Ralph
To rozwiązało również problem na moim komputerze lokalnym. Uważam, że należy to oznaczyć jako najlepsze.
Arda,
7

Ponieważ nie można uruchomić systemu na żywo, może to brzmieć nieco dziwnie, ale myślę, że to zadziała)

wysoki poziom:

  • uruchom do nowej (innej) instancji.
  • dołącz pamięć ze starej instancji do nowej (bieżącej).
  • biegnij fsck.
  • odłącz pamięć od nowej (bieżącej) i podłącz ją ponownie do starej instancji.
Alexus
źródło
0

Po prostu wykonuję 3 kroki poniżej i problem został rozwiązany.

  1. Dodaj „FSCKFIX = yes” do / etc / default / rcS
  2. sudo touch / forcefsck
  3. sudo restart

Dziękuje wszystkim.

thach.nv92
źródło