Raspberry Pi 3 e Raspbian Jessie - Como executar o fsck na inicialização?


13

Como executar o fsck na inicialização ao usar o Pi 3 e o Raspberry Jessie? Eu li alguns tutoriais, mas eles diferem.

Eu corri, sudo touch /forcefsckmas o que mais eu tenho que fazer? Eu sei que devo definir FSCKFIX = yes, mas qual é o arquivo correto? Alguns dizem /lib/init/vars.shoutros /etc/default/rcS.

Como posso verificar se minhas configurações estão funcionando? Não tenho visibilidade para a tela. Há falta de energia, portanto, existe um alto risco de o sistema de arquivos ser corrompido.

Editar:

Eu tentei duas soluções mencionadas abaixo.

1) Usando sudo shutdown -rF now/var/log/boot.log, diz: [^[[32m OK ^[[0m] Started Load/Save Random Seed. [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [ 3.679250] systemd-fsck[219]: fsck.fat 3.0.27 (2014-11-12) [ 3.681320] systemd-fsck[219]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. Mounting /boot... [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. Starting Load/Save RF Kill Switch Status of rfkill0... [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [^[[32m OK ^[[0m] Mounted /boot. [^[[32m OK ^[[0m] Reached target Local File Systems. Starting Tell Plymouth To Write Out Runtime Data... Starting Create Volatile Files and Directories... Starting LSB: Raise network interfaces.... [^[[32m OK ^[[0m] Reached target Remote File Systems. Starting Trigger Flushing of Journal to Persistent Storage... Starting LSB: Prepare console... Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)... [^[[32m OK ^[[0m] Started Tell Plymouth To Write Out Runtime Data.

2) Usando fsck.mode=forcee fsck.repair=yesno /boot/cmdline.txtbootlog diz: [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [ 5.749367] systemd-fsck[112]: Pass 2: Checking directory structure [ 8.673500] systemd-fsck[112]: Pass 3: Checking directory connectivity [ 8.683831] systemd-fsck[112]: Pass 4: Checking reference counts [ 9.318835] systemd-fsck[112]: Pass 5: Checking group summary information [ 9.518754] systemd-fsck[112]: /dev/mmcblk0p2: 131321/956160 files (0.2% non-contiguous$ [^[[32m OK ^[[0m] Started File System Check on Root Device. Starting File System Check on /dev/mmcblk0p1... Starting Remount Root and Kernel File Systems... [^[[32m OK ^[[0m] Started Remount Root and Kernel File Systems. Starting Load/Save RF Kill Switch Status of rfkill0... Starting Load/Save Random Seed... [^[[32m OK ^[[0m] Reached target Local File Systems (Pre). [ 9.639259] systemd-fsck[239]: fsck.fat 3.0.27 (2014-11-12) [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [ 9.644216] systemd-fsck[239]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. [^[[32m OK ^[[0m] Started Load/Save Random Seed. Mounting /boot... [^[[32m OK ^[[0m] Mounted /boot.

Por que o arquivo de log é totalmente diferente nesses dois casos?

Respostas:


23

Executei o sudo touch / forcefsck, mas o que mais devo fazer?

Isso é coisa que se aplica mais ao chiado; jessie pode (ou não) ser retrocompatível com ele, mas você também pode fazê-lo da nova maneira:

Adicione o seguinte a /boot/cmdline.txt:

fsck.mode=force

Verifique se o arquivo permanece com uma única linha. Os parâmetros devem ser separados por espaços.

Você provavelmente notará que fsck.repair=yesjá está lá; Estes não são a mesma coisa. From man systemd-fsck(na verdade, são parâmetros passados ​​pelo kernel para init , isto é, systemd):

fsck.mode =

Um de "auto", "forçar", "pular". Controla o modo de operação. O padrão é "auto" e garante que as verificações do sistema de arquivos sejam feitas quando o verificador do sistema de arquivos considerar necessário. "force" resulta incondicionalmente em verificações completas do sistema de arquivos. "pular" pula todas as verificações do sistema de arquivos.

fsck.repair =

Um de "preen", "yes", "no". Controla o modo de operação. O padrão é "preen" e reparará automaticamente problemas que podem ser corrigidos com segurança. "yes" responderá sim a todas as perguntas pelo fsck e "no" responderá não a todas as perguntas.


Como isso é diferente em comparação com sudo shutdown -rF now? Boot.log parece totalmente diferente.
JPX

3

Isto é o que estou usando em uma versão antiga e estável da Jessie, no final da linha em cmdline.txt: forcefsck

Também tenho o seguinte em fstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 Observe o 1e 2no final da linha

Ele verifica e repara a partição raiz (/ dev / mmcblk0p2) em cada inicialização (@JulianKnight não / dev / sda2).

O que é descrito no OP original ainda funciona para o Wheezy no RPi: sudo touch /forcefsck

@WillianPaixao após Wheezy a -Fopção de shutdownnão é mais suportada

Como forçar uma verificação do sistema de arquivos está (principalmente) vinculada à versão do kernel, em algum momento após o Debian 8.0 (na versão 8.2?), Ela foi alterada conforme descrito na resposta @goldilocks.


2

Você também deve poder fazer o seguinte, o que deve funcionar para qualquer Linux, não apenas para o Pi (obviamente, o dispositivo mudará para plataformas diferentes, o sda2 deve ser adequado para um cartão SD Pi padrão):

sudo tune2fs -c 1 /dev/sda2

Isso deve definir uma verificação a cada reinicialização. Você pode alterar o número para o que quiser. Use -i em vez de -c se desejar verificar com base no tempo. Veja a página de manual para mais informações.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.