# Forcer fsck au démarrage ?

**URL:** <https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263>\
**Category:** Support Debian\
**Created:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263 "2016-02-21T22:18:12Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Maniack\_Crudelis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/c6cbf5/32.png) [@Maniack\_Crudelis](https://www.debian-fr.org/u/Maniack_Crudelis)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263/1 "2016-02-21T22:18:12Z")

</div>

Bonjour,

j’ai constaté depuis peu que mon serveur debian (jessie) ne fait aucun fsck au démarrage.  
Manifestement ce n’est pas une erreur, [linuxquestions.org/question … 175433189/](https://www.linuxquestions.org/questions/slackware-14/are-ext4-file-system-checks-disabled-by-default-on-14-0-a-4175433189/)

Toutefois, j’ai essayé différents moyens de forcer manuellement un fsck sans succès.

- La création du fichier /forcefsck donne ce message dans le syslog: [quote]“Please pass ‘fsck.mode=force’ on the kernel command line rather than creating /forcefsck on the root file system.”[/quote]

- J’ai donc essayé de passer fsck.mode=force dans GRUB\_CMDLINE\_LINUX

```auto

```

Suivi d’un update-grub  
Le message ne s’affiche plus, mais toujours pas de fsck…

- Ma dernière tentative a été de passer le disque en erreur:

```auto

```

Dumpe2fs indique alors effectivement que l’état du disque est “not clean with errors”, mais après un redémarrage toujours sans fsck, le disque est passé à “clean”!

J’ai également changé la config de /etc/default/rcS pour passer FSCKFIX à yes. Sans plus de succès sur les méthodes précédentes.

J’ai trouvé ici même, [sur ce topic](https://www.debian-fr.org/mise-a-jour-systeme-casse-apres-passage-au-noyau-3-16-t51921-75.html#p517715), qu’utiliser sysvinit permettait de prendre en compte /forcefsck. Mais je dois bien avouer que je ne comprend pas comment démarrer avec sysvinit au lieu de systemd. Et je présume qu’il doit exister un moyen de faire un fsck proprement avec systemd. Mais je ne parviens pas à trouver d’infos à ce sujet.

J’aimerais vraiment pouvoir refaire des fsck de mes disques, ils n’ont pas été vérifié depuis 1 an 1/2 maintenant…

En espérant trouver de l’aide ici 😃  
Merci de votre aide.

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263/2 "2016-02-21T22:18:14Z")

</div>

Salut,  
Il y a les service systemd-fsck@.service

[freedesktop.org/software/sy … rvice.html](https://www.freedesktop.org/software/systemd/man/systemd-fsck@.service.html)

> [@](#):
>
> These services are started at boot if passno in /etc/fstab for the file system is set to a value greater than zero.

Sur mon desktop, je vois bien passer le fsck au debut du boot.  
Si je verifie le status voila ce qui est:

[code]root@desktop:/usr/lib/systemd# systemctl status systemd-fsck\*  
● systemd-fsck-root.service - File System Check on Root Device  
Loaded: loaded (/lib/systemd/system/systemd-fsck-root.service; static)  
Active: inactive (dead)  
start condition failed at sam. 2016-02-13 08:58:53 CET; 24min ago  
ConditionPathExists=!/run/initramfs/fsck-root was not met  
Docs: man:systemd-fsck-root.service(8)

● systemd-fsck@dev-disk-by\x2duuid-4fabe726\x2d5797\x2d4439\x2d9a1f\x2dc02b62b0d143.service - File System Check on /dev/disk/by-uuid/4fabe726-5797-4439-9a1f-c02b62b0d143  
Loaded: loaded (/lib/systemd/system/systemd-fsck@.service; static)  
Active: active (exited) since sam. 2016-02-13 08:58:55 CET; 24min ago  
Docs: man:systemd-fsck@.service(8)  
Process: 402 ExecStart=/lib/systemd/systemd-fsck %f (code=exited, status=0/SUCCESS)  
Main PID: 402 (code=exited, status=0/SUCCESS)

févr. 13 08:58:55 desktop systemd-fsck[402]: /dev/sda2 : propre, 36825/7938048 fichiers, 5129035/31748096 blocs[/code]  
log du boot:

`root@desktop:/# journalctl -b | grep fsck
févr. 13 08:58:55 desktop systemd-fsck[402]: /dev/sda2 : propre, 36825/7938048 fichiers, 5129035/31748096 blocs`

Pour / c’est initramfs qui fait le job

[code]root@desktop:/run/initramfs# cat fsck.log  
Log of fsck -a -t ext4 /dev/sda1  
Sat Feb 13 07:58:47 2016

fsck from util-linux 2.25.2  
/dev/sda1: clean, 186948/1831424 files, 1380247/7323904 blocks

## Sat Feb 13 07:58:47 2016

[/code]

Le paquet est-il bien installé?  
initramfs-tools  
générateur générique et modulaire d’initramfs

`root@desktop:/run/initramfs# apt list initramfs-tools
En train de lister... Fait
initramfs-tools/stable,now 0.120 all [installé, automatique`  
La fstab

[code]root@desktop:/usr/lib/systemd# cat /etc/fstab

# /etc/fstab: static file system information.

# 

# Use ‹&nbsp;blkid&nbsp;› to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

# 

# 

# / was on /dev/sda1 during installation

UUID=7b327cad-72cf-4e2f-8156-3a185e1a0c20 / ext4 errors=remount-ro 0 1

# /home during installation

UUID=4fabe726-5797-4439-9a1f-c02b62b0d143 /home ext4 defaults 0 2

# lecteur cdrom

/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

# disque usb UUID=5A521CA2521C84C3

UUID=5A521CA2521C84C3 /media/guy/Elements ntfs defaults,nofail 0 2  
[/code]

il y avait un conflit entre les parametres kernel et initramfs, je ne sais pas ou ça en est  
[lists.debian.org/debian-user/20 … 01432.html](https://lists.debian.org/debian-user/2015/04/msg01432.html)

En tout cas sur Debian Jessie 8.3 fsck passe bien

---

<div class="post-metadata">

**Author:** ![Maniack\_Crudelis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/c6cbf5/32.png) [@Maniack\_Crudelis](https://www.debian-fr.org/u/Maniack_Crudelis)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263/3 "2016-02-21T22:18:16Z")

</div>

Merci de ta réponse.

Ce matin en démarrant la machine de test pour voir ce que tu me disais, cette saleté a fait un fsck sans que je lui demande rien (je pense qu’elle joue avec mes nerfs ![:016](https://www.debian-fr.org/uploads/default/original/1X/b259ae9d61776a18a151e35004995aa8715555b6.gif "langue-en-vert") )

Le log dans /run/initramfs/fsck.log, je ne le connaissait pas! Toutefois il ne contient que le log de ce matin.  
Je n’aurais pas le temps aujourd’hui, mais il me reste encore à trouver comment forcer le fsck (/forcefsck semblant être sans effet) pour éviter des fsck intempestif durant le boot.

systemd-fsck@dev-disk-by est bien actif chez moi aussi.  
Le fstab est bon avec 1 pour le disque système et 2 pour les autres.

Je vais continuer les essais avec ce nouveau log ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

---

<div class="post-metadata">

**Author:** ![avram](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/b38774/32.png) [@avram](https://www.debian-fr.org/u/avram)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263/4 "2016-02-21T22:18:17Z")

</div>

bonjour.

Tune2fs vous permet de programmer la vérification de vos différentes partitions.Tune2fs fait partie du paquet e2fsprogs

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263/5 "2016-02-21T22:18:17Z")

</div>

[quote]- J’ai donc essayé de passer fsck.mode=force dans GRUB\_CMDLINE\_LINUX  
Code:  
GRUB\_CMDLINE\_LINUX=“fsck.mode=force”

Suivi d’un update-grub  
Le message ne s’affiche plus, mais toujours pas de fsck…[/quote]  
ça devrait bien forcer le fsck  
[freedesktop.org/software/sy … rvice.html](https://www.freedesktop.org/software/systemd/man/systemd-fsck@.service.html)  
pour le boot normal j’utilise GRUB\_CMDLINE\_LINUX\_DEFAULT  
GRUB\_CMDLINE\_LINUX\_DEFAULT=“quiet apparmor=1 security=apparmor"  
GRUB\_CMDLINE\_LINUX=”"

si le disque est de grande taille il peut y avoir des problèmes de time-out  
[bugs.debian.org/cgi-bin/bugrepo … =788050#65](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788050#65)  
Faut jeter un oeil la-dedans

[code]root@desktop:/lib/systemd/system# cat systemd-fsck-root.service

# This file is part of systemd.

# 

# systemd is free software; you can redistribute it and/or modify it

# under the terms of the GNU Lesser General Public License as published by

# the Free Software Foundation; either version 2.1 of the License, or

# (at your option) any later version.

[Unit]  
Description=File System Check on Root Device  
Documentation=man:systemd-fsck-root.service(8)  
DefaultDependencies=no  
After=systemd-readahead-collect.service systemd-readahead-replay.service  
Before=local-fs.target shutdown.target

ConditionPathIsReadWrite=!/  
ConditionPathExists=!/run/initramfs/fsck-root

[Service]  
Type=oneshot  
RemainAfterExit=yes  
ExecStart=/lib/systemd/systemd-fsck  
StandardOutput=journal+console  
TimeoutSec=0[/code]

[code]root@desktop:/lib/systemd/system# cat systemd-fsck@.service

# This file is part of systemd.

# 

# systemd is free software; you can redistribute it and/or modify it

# under the terms of the GNU Lesser General Public License as published by

# the Free Software Foundation; either version 2.1 of the License, or

# (at your option) any later version.

[Unit]  
Description=File System Check on %f  
Documentation=man:systemd-fsck@.service(8)  
DefaultDependencies=no  
BindsTo=%i.device  
After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service  
Before=shutdown.target

[Service]  
Type=oneshot  
RemainAfterExit=yes  
ExecStart=/lib/systemd/systemd-fsck %f  
StandardOutput=journal+console  
TimeoutSec=0[/code]

NB:  
A chaque boot c’est ok sans rien toucher:

[code]root@desktop:/var/run/initramfs# ls -alrt  
total 4  
-rw-r–r-- 1 root root 0 févr. 14 08:53 fsck-root  
-rw-r–r-- 1 root root 194 févr. 14 08:53 fsck.log  
drwxr-xr-x 2 root root 80 févr. 14 08:53 .  
drwxr-xr-x 25 root root 820 févr. 14 08:54 …  
root@desktop:/var/run/initramfs# cat fsck.log  
Log of fsck -a -t ext4 /dev/sda1  
Sun Feb 14 07:53:10 2016

fsck from util-linux 2.25.2  
/dev/sda1: clean, 186955/1831424 files, 1380167/7323904 blocks

## Sun Feb 14 07:53:10 2016

[/code]`
root@desktop:/var/run/initramfs# journalctl -b | grep fsck
févr. 14 08:53:18 desktop systemd-fsck[400]: /dev/sda2 : propre, 36795/7938048 fichiers, 5328688/31748096 blocs
root@desktop:/var/run/initramfs#`

initramfs est à l’heure UTC, il est faut aussi s’assurer que l’horloge fonctionne correctement , j’utilise NTP cf en fin de boot

`févr. 14 08:53:31 desktop ntpd[977]: Listen normally on 4 eth0 
févr. 14 08:53:31 desktop ntpd[977]: peers refreshed
févr. 14 08:53:33 desktop ntpd_intres[999]: DNS ntp1.jussieu.fr -> 134.157.254.19
févr. 14 08:53:33 desktop ntpd_intres[999]: DNS ntp.sophia.cnrs.fr -> 195.220.194.193
févr. 14 08:53:34 desktop ntpd[977]: Listen normally on 5 eth0 
févr. 14 08:53:34 desktop ntpd[977]: peers refreshed
févr. 14 08:53:35 desktop ntpdate[1148]: the NTP socket is in use, exiting`

---

<div class="post-metadata">

**Author:** ![Maniack\_Crudelis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/c6cbf5/32.png) [@Maniack\_Crudelis](https://www.debian-fr.org/u/Maniack_Crudelis)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263/6 "2016-02-21T22:18:28Z")

</div>

Je constate quelques incohérences dans les informations fournies par les outils.

Après un arrêt brutal, le serveur a redémarré et effectué un fsck, avec la correction de quelques inodes.  
Mais…

[ul][li] /var/log/fsck/checkfs et /var/log/fsck/checkroot indiquent un fsck datant de 2015.[/li]  
[li] dumpe2fs -h /dev/sda1 indique que le dernier check à eu lieu en 2014.[/li]  
[li] /run/initramfs/fsck.log indique pour sa part le fsck qui vient d’être fait, avec le log des opérations effectuées.[/li]  
[li] Pourtant, fsck.mode est sur skip (je voulais constaté la différence)[/li][/ul]

En revérifiant sur une machine qui n’a pas subit de modification:  
[ul][li]enable\_periodic\_fsck à 0 dans /etc/mke2fs.conf[/li]  
[li]GRUB\_CMDLINE\_LINUX vide.[/li]  
[li]FSCKFIX inchangé dans /etc/default/rcS[/li]  
[li]Maximum mount count à -1 et Check interval à 0 pour sda1[/li][/ul]  
J’ai un log dans /run/initramfs/fsck.log indiquant le dernier démarrage. Et effectivement je vois passer fsck.

```auto
Il est à noter que je n'ai pas remarqué le passage de fsck avant cela car je suis habitué à un fsck verbeux au démarrage, ce qui ne semble plus être le cas avec systemd...
```

Donc en fait… Je me retrouve dans la situation inverse de celle qui m’a amené ici. Le système fait un fsck à chaque démarrage!!!  
Et avec un fsck.mode=skip, il continue à faire des fsck discret à chaque démarrage…

@avram, j’ai modifié le temps entre 2 vérifications à l’aide de tune2fs, celui-ci se basant manifestement sur les infos qu’on peut lire à l’aide de dumpe2fs il demande un check disk.

> [@](#):
>
> EXT4-fs (sda1): warning: checktime reached, running e2fsck is recommended

J’aurais préféré qu’il le fasse… Plutôt que de le dire…

J’en conclu présentement que le fsck effectué par systemd à l’aide de systemd-fsck@.service échappe à tout contrôle pour le moment. ![:think:](https://www.debian-fr.org/uploads/default/original/1X/98cae0704aea0201d04f151843e80a3ecd391eca.gif "Think")  
Y-a-t-il un moyen de démarrer sur sysvinit? Juste le temps d’un check disk maîtrisé sur tout les disques afin de s’assurer de leur intégrité de manière fiable.

J’ai moi même trouvé la réponse à cette question, mais ça peut aider.  
J’ai ajouté init=/lib/sysvinit/init à GRUB\_CMDLINE\_LINUX pour forcer un démarrage avec sysvinit, dés lors cela m’a permis de passer un /forcefsck.  
L’information «&nbsp;Last checked&nbsp;» du disque dur est mise à jour et les logs /var/log/fsck/checkroot et /var/log/fsck/checkfs contiennent le log de ce fsck forcé.

Alors c’est plus ou moins réglé. J’arrive à forcer un fsck au moment voulu, mais ça oblige à modifier l’init le temps de la manœuvre. Avec systemd, c’est une autre histoire.

Merci du temps que vous m’avez accordé. ![:text-thankyouyellow:](https://www.debian-fr.org/uploads/default/original/1X/b46cd5c37f1de9bfb4606cb91dd4406c6d551659.gif "Yellow Thank You")

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/forcer-fsck-au-demarrage/68263/7 "2016-02-21T22:18:28Z")

</div>

Le fsck sur / est géré par initramfs  
Pour l’incidence de l’horloge voir ça  
[lists.debian.org/debian-kernel/ … 00417.html](https://lists.debian.org/debian-kernel/2015/05/msg00417.html)

Et les éventuels soucis quand on fait du dual boot avec windows  
[generation-nt.com/reponses/s … l#26348768](http://www.generation-nt.com/reponses/superblock-last-write-time-is-in-the-future-entraide-4259385.html#26348768)
