4 votes

sortir de e2fsck au démarrage

Est-il possible d'échapper à e2fsck au démarrage ?

Mon système exécute e2fsck tous les 30 jours, ce qui me convient parfaitement et je veux que cela reste ainsi. Mais parfois, lorsque j'allume l'ordinateur et que 30 jours se sont écoulés, je veux quand même qu'il démarre rapidement. Par exemple, lorsque je dois faire une présentation sur un ordinateur portable - imaginez dire à 50 personnes "nous devons juste attendre 10 minutes... non, je ne peux pas l'éviter... oui, c'est Linux, pourquoi le demandez-vous ?" :)

Si j'appuie sur Ctrl+C, la vérification s'arrête et la séquence de démarrage continue, mais le système est inutilisable car le système de fichiers racine est monté en lecture seule. Et après un redémarrage, la vérification recommence.

J'ai cherché la réponse sur Internet et il y a beaucoup de questions similaires, mais je n'ai trouvé aucune solution. Quelqu'un connaît-il une solution ?

Note : Je suis à la recherche d'une solution qui no désactiver fsck et cela no exigent une action avant de redémarrer l'ordinateur - je ne sais pas à l'avance que je devrai sauter la vérification.

Si ça compte : Debian 6 (Squeeze).

UPDATE : J'ai appris qu'il est possible de sortir de e2fsck avec la touche Esc sur Ubuntu. C'est exactement ce que je cherche - quelqu'un sait comment faire cela sur Debian ?

SOLUTION : La réponse de Garrett était correcte, j'ai dû la modifier. /etc/init.d/checkroot.sh . Juste avant ces lignes :

#
# The actual checking is done here.
#
if [ "$rootcheck" = yes ]
then
    ...

J'ai ajouté ces lignes :

if [ "$rootcheck" = yes ]
then
    if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline
    then
        echo "fsck was forced."
    else
        echo "********************************************************************************************************"
        echo "*                                                                                                      *"
        echo "*  WARNING: fsck should be run, but it is disabled. Create /forcefsck and reboot at your convenience.  *"
        echo "*                                                                                                      *"
        echo "********************************************************************************************************"
        rootcheck="no"
    fi
fi

Cela fonctionne à merveille - je souris chaque fois que je vois le message, sachant que je viens de sauver une autre demi-heure de ma vie :)

6voto

Garrett Points 4089

Il existe trois façons simples de réaliser ce que vous cherchez à faire, selon la situation.

  1. Lors de l'arrêt, utilisez la ligne de commande shutdown et passer le -f le commutateur, par exemple pour un redémarrage : shutdown -rf now . Vous pouvez également créer un raccourci avec cette fonction si vous le souhaitez. Cela évitera la vérification de fsck au prochain redémarrage seulement.
  2. Quand le menu Grub est affiché au démarrage, tapez 'e' pour éditer le noyau de démarrage actuel, éditez la ligne vmlinuz et ajoutez fastboot jusqu'à la fin. Comme l'option 1, cela évite la vérification fsck pour ce seul démarrage.
  3. Si vous vraiment si vous voulez désactiver complètement la vérification (ce qui n'est pas recommandé), vous pouvez modifier le fichier /etc/fstab . Trouvez la ligne avec votre système de fichiers racine et à la fin il y aura deux chiffres, généralement 1 2 . La modification du dernier chiffre (2 ici) à 0 empêchera toutes les vérifications fsck automatiques au démarrage de s'exécuter sur ce volume.

Edit pour #2 : Vous pourriez ajouter une nouvelle entrée à Grub pour fastboot qui peut s'avérer plus adapté à votre cas. Cela conserve la vérification normale de fsck tout en présentant un choix pendant le démarrage.

1voto

user Points 28521

Bien que cela ne réponde pas directement à votre question sur la façon d'interrompre un fsck en cours d'exécution, si vous savez à l'avance que vous aurez besoin d'un démarrage rapide (comme si vous prévoyez de faire une présentation), vous pouvez certainement exécuter fsck manuellement à un moment antérieur. Cela vous donnera un nouveau délai de 30 jours avant la prochaine vérification automatique du système de fichiers sans toucher à la configuration du système.

1voto

UltimateBrent Points 6167

Vous pouvez modifier le script de démarrage qui appelle fsck. Ainsi, vous pourriez par exemple faire en sorte qu'il demande à la console s'il faut faire un fsck, avec un timeout. Les script sont dans /etc/init.d/checkroot.sh et /etc/init.d/checkfs.sh.

Je remarque que ma copie contient ce code que vous pouvez réactiver :

# Disabled AC power check until fsck can be told to only check the
# file system if it is corrupt when running on battery. (bug #526398)
#       if which on_ac_power >/dev/null 2>&1 && [ "$rootcheck" = yes ]
#       then
#               on_ac_power >/dev/null 2>&1
#               if [ "$?" -eq 1 ]
#               then
#                       log_warning_msg "On battery power, so skipping file system check."
#                       rootcheck=no
#               fi
#       fi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X