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 démarrage. Cela me laisse à mi-chemin dans un démarrage, avec une invite à "Continuer à attendre, appuyez sur S ou appuyez sur M" mais aucune pression de touche n’a d’effet à ce stade (y Ctrl-Alt-Delete, même pas majuscule).
À court d’écriture d’un script pour vérifier la sortie de fdisk -l
, comment puis-je monter ce lecteur au démarrage uniquement s’il est présent? Il serait pratique d’avoir une entrée fdisk pour ce lecteur, je peux donc taper mount /jgdata
au lieu d’avoir besoin d’un nom de périphérique.
Vous êtes tous sur la bonne piste. J'ai trouvé un moyen un peu plus propre et une meilleure forme.
L'option correcte à ajouter dans fstab
est nofail
name__, toutefois, elle doit être placée après auto
name__. Si vous le changez en noauto
name__, il ne sera jamais monté au démarrage. Si vous ajoutez nobootwait
au chargeur de démarrage, vous risquez peut-être de manquer quelque chose de grave, tel que le montage de la partition avant que fsck
ne la vérifie, ou de ne pas monter une partition utilisée dans le processus de démarrage.
Après avoir apporté les modifications 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, en fonction de la configuration (trop de variables à tester), le périphérique risque de ne pas être immédiatement monté. Vous pouvez y remédier avec un simple mount -a
ou mount /specific_device
ou un redémarrage.
J'ai eu le même problème - j'ai fait une étape supplémentaire
Si vous utilisez l'option nofail
dans /etc/fstab
, 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é. Sinon, 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 périphérique branché, et tout fonctionne correctement.
Ce que je n’ai pas fait, c’est de monter automatiquement le disque quand celui-ci est branché après le démarrage (quand il n’est pas branché au démarrage). Je dois utiliser mount -a
en tant que root pour tout remonter.
l'option noauto laisse-t-elle continuer le processus de démarrage?
il ne monte pas automatiquement s'il est présent, mais il le fait savoir si un présent mont/jgdata fonctionne ... alors un script/un mont/jdata n'aurait pas besoin d'une vérification de la sortie, il suffit de détecter l'erreur et de continuer à démarrer
edit: lors de lectures supplémentaires, bootwait est probablement une option plus correcte à passer ... (généralement utilisé pour les partages réseau qui pourraient ne pas être présents plus tard dans le processus de démarrage, mais qui pourraient quand même causer un blocage, idk)
et le script de montage pourrait être ajouté comme suit: https://stackoverflow.com/questions/2062543/running-a-script-with-the-help-of-grub-and-menu-lst
/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0
a travaillé pour moi.
nofail ... Ne signalez pas d'erreurs pour ce périphérique s'il n'existe pas.
x-systemd.device-timeout = 30 ... Le démarrage durera 30 secondes de plus si le périphérique n'existe pas (90 par défaut) secondes).
Source: https://wiki.archlinux.org/index.php/fstab#External_devices
La méthode de montage recommandée lors du démarrage consiste à informer leur système via le fichier fstab . En regardant votre Ask, je constate que vous y êtes presque, il ne manque que les instructions qui configurent le périphérique pour qu'il utilise les options de montage automatique, ce qui permet à votre système de monter le périphérique lorsqu'il est disponible.
Donc, il suffit de réécrire la ligne dans votre fstab pour qu’elle soit comme ci-dessous:
# <file system> <dir> <type> <options> <dump> <pass>
UUID="680C0FE30C0FAAE0" /jgdata ntfs user,auto,rw 0 0
Une fois la modification effectuée et sauvegardée, essayez de la monter à la main:
$ Sudo mount -a
Il est important de noter que:
<options>
doivent être écrits selon un format très spécifique, séparés par des virgules mais sans espaces après chaque virgule. Attention à ça ;-)Merci!
J'ai le même problème. J'ai édité fstab pour commenter l'entrée lorsque je sais que le lecteur ne sera pas présent lors de mon prochain démarrage. Ensuite, lorsque le lecteur est présent, je modifie simplement fstab pour supprimer le commentaire et émettre mount -a. Ce n'est pas une solution parfaite. Ce serait formidable si je pouvais trouver un moyen de faire en sorte que le système monte automatiquement le lecteur, le cas échéant, ou l'ignore automatiquement s'il n'est pas présent. Le même problème se produit si vos partages NFS sont montés automatiquement et que le serveur n'est pas présent.