108 votes

Monter un disque externe au démarrage uniquement s'il est branché.

J'ai une entrée pour un disque dur externe dans mon fstab :

UUID="680C0FE30C0FAAE0" /jgdata ntfs noatime,rw

Mais parfois, ce lecteur n'est pas branché au moment du démarrage. Cela me laisse à mi-chemin d'un démarrage, avec une invite à "Continuer à attendre, appuyez sur S ou appuyez sur M", mais aucune touche n'a d'effet à ce stade (y compris les touches suivantes Ctrl - Alt - Delete même pas la majuscule).

A défaut d'écrire un script pour vérifier la sortie de fdisk -l Comment puis-je monter ce disque au démarrage uniquement s'il est présent ? Il serait pratique d'avoir une entrée fdisk pour ce lecteur, ainsi je peux juste taper mount /jgdata au lieu d'avoir besoin d'un nom de périphérique.

109voto

Bryan Gonzalez Points 1106

Vous êtes tous sur la bonne piste. J'ai trouvé un chemin qui est un peu plus propre et une meilleure forme.

L'option correcte à ajouter dans fstab es nofail mais il doit être placé après auto . Si vous le changez en noauto il ne sera jamais monté pendant le démarrage. Si vous ajoutez nobootwait au chargeur de démarrage, vous pourriez potentiellement manquer quelque chose de sérieux, comme monter la partition avant que fsck finit de le vérifier, ou ne monte pas une partition qui est utilisée dans le processus de démarrage.

Après avoir effectué la modification ci-dessus, le système démarrera normalement (et montera le volume) si le périphérique est branché alors que le système est arrêté. Il démarrera également normalement si le périphérique n'est pas présent au moment du démarrage.

Le seul inconvénient est que si vous connectez le périphérique alors que le système est en cours d'exécution, selon la configuration (trop de variables à tester), le périphérique peut ne pas se monter immédiatement. Il est possible d'y remédier avec un simple mount -a o mount /specific_device ou un redémarrage.

27voto

user898384 Points 371

J'ai eu le même problème. J'ai fait une étape supplémentaire.

Si vous utilisez le nofail option dans /etc/fstab Si le périphérique est branché, le système recherchera votre disque (et votre partition) au moment du démarrage. Si le périphérique est branché, le système de fichiers sera monté. Dans le cas contraire, le démarrage se poursuivra normalement.

Voir arch wiki : https://wiki.archlinux.org/index.php/Fstab

Exemple

UUID=XXXXXXXXXXXXXXX    /myhdd ntfs  auto,nofail,noatime,rw,user    0   0

J'ai essayé de démarrer le système avec et sans le dispositif branché, et cela fonctionne bien.

Ce que je n'ai pas réussi à faire est d'automatiser le montage lorsque le disque est branché après le démarrage (lorsqu'il n'est pas branché au démarrage). Je dois utiliser mount -a en tant que root pour tout remonter.

15voto

user313829 Points 163
/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0

a fonctionné pour moi.

nofail ... Ne pas signaler les erreurs pour ce périphérique s'il n'existe pas.
x-systemd.device-timeout=30 ... Le démarrage prendra 30 secondes de plus si le périphérique n'existe pas (la valeur par défaut est de 90 secondes).

Source : https://wiki.archlinux.org/index.php/fstab#External_devices

14voto

RobotHumans Points 27764

L'option noauto permet-elle au processus de démarrage de se poursuivre ?

il ne monte pas automatiquement s'il est présent, mais il le fait savoir s'il est présent, donc un simple mount /jgdata fonctionne... alors un script mount /jdata n'aurait pas besoin d'une vérification de la sortie, il suffit d'attraper l'erreur et de continuer le démarrage

edit : après une lecture plus approfondie, bootwait est probablement une option plus correcte à passer...(habituellement utilisé pour les partages réseau qui peuvent ne pas être présents jusqu'à plus tard dans le processus de démarrage, mais cela peut toujours causer un blocage, idk)

et le montage script pourrait être ajouté comme ceci : https://stackoverflow.com/questions/2062543/running-a-script-avec-l'aide-de-script-et-menu-lst

1voto

semi Points 726

La manière recommandée de monter pendant le démarrage est d'instruire le système par le biais de la commande fstab fichier. En regardant votre demande, je peux voir que vous y êtes presque, il ne manque que l'instruction qui définit le périphérique pour utiliser les options de montage automatique, permettant à votre système de monter le périphérique quand il est disponible.

Donc, il suffit de réécrire la ligne dans votre fstab pour être comme ci-dessous :

# <file system>           <dir>       <type>    <options>         <dump> <pass>
UUID="680C0FE30C0FAAE0"   /jgdata      ntfs      user,auto,rw       0     0

Après l'avoir modifié et enregistré, essayez de le monter à la main :

$ sudo mount -a

Il est important de noter que :

  1. vous devez être sûr de l'UUID de l'appareil. Les UUID sont générés par les utilitaires make-filesystem (mkfs.*) lorsque vous créez un système de fichiers.
  2. Ces <options> doit être écrit selon un format très spécifique, séparé par des virgules mais sans espace après chaque virgule. Faites attention à cela ;-)
  3. Je ne suis pas sûr que cela fonctionne correctement car vous essayez d'automatiser un système de fichiers NTFS, qui sont manipulables avec la fonction NTFS-3G utilitaires. Bien que mes instructions soient censées fonctionner correctement, je n'ai jamais essayé de monter automatiquement NTFS auparavant. Donc, si cela a échoué, je vous recommande de regarder ceci Montage des partitions Windows pour des utilisations alternatives de NTFS.

Merci !

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