Je travaille avec un système où nous voulons permettre aux utilisateurs de jouer avec la date et l'heure s'ils le souhaitent, et où les redémarrages peuvent se produire arbitrairement. C'est très bien, sauf pour une chose: s'il y a un grand saut en arrière, l'erreur suivante apparaît au redémarrage:
Checking filesystems
IMAGE2: Superblock last mount time (Tue Mar 1 17:32:48 2011,
now = Thu Feb 24 17:34:29 2011) is in the future.
IMAGE2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
… Et puis le démarrage se bloque en attendant l'entrée de la console utilisateur, et même une fois l'accès à la console obtenu, nécessite un mot de passe root pour continuer.
C'est décidément loin d'être idéal. Existe-t-il un moyen d'ignorer la vérification ou de forcer la vérification à se produire automatiquement au redémarrage?
Google n'a fourni une aide qui nécessite l'exécution de fsck manuellement que si / quand cela se produit, ce qui n'est pas ce que je recherche. L'exécution manuelle de fsck après avoir réglé l'heure ne fonctionne pas car le système de fichiers est toujours monté à ce stade, et la désactivation complète de fsck est loin d'être idéale.
J'utilise RedHat 6.
Mise à jour : La solution que j'utilise actuellement consiste à pirater fstab pour désactiver la vérification de fsck au redémarrage. J'avais essayé de modifier la dernière heure de montage sur les disques à l'aide de debugfs
, ce qui fonctionne bien pour les disques ext3, mais semble échouer de manière incohérente sur ext4.
Je doute qu'il existe un moyen de supprimer cette vérification spécifiquement, à moins de modifier le code source. Ignorer toutes les erreurs de fsck semble dangereux, et s'il y avait un autre problème?
Par conséquent, je suggère la solution de contournement suivante: modifiez les scripts de démarrage pour définir la date du système sur une date ultérieure (par exemple 2038-01-18 sur une machine 32 bits) juste avant d'exécuter fsck, et relisez-la à partir du matériel horloge par la suite (
hwclock --hctosys
, avec plus d'options selon les besoins en fonction de votre matériel et de l'utilisation de GMT dans l'horloge matérielle.)la source
Cela semble devoir être exécuté sur une machine virtuelle, où vous pouvez avoir plus de contrôle (ou simplement revenir à un instantané).
la source
Voici une solution qui a très bien fonctionné pour moi:
Créez /etc/e2fsck.conf:
Plus d'informations sur ce correctif ici:
http://stillstup.blogspot.com/2010/02/superblock-last-mount-time-is-in-future.html
la source