Je travaille sur un script dans lequel je crée un système de fichiers ext3 sur un disque. Le problème est que le script demande à l'utilisateur de dire oui ou non:
root@ubuntu:/home/school# mkfs.ext3 /dev/sdc
mke2fs 1.42 (29-Nov-2011)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n)
J'ai essayé de mettre -y avant mkfs et après sdc mais cela n'a pas fonctionné. Est-ce que quelqu'un a des solutions pour le faire sans interaction de l'utilisateur?
Vous ne devriez probablement pas créer de système de fichiers sur un disque entier. À la place, vous devriez le créer sur une partition sur le disque (ce serait quelque chose comme /dev/sdc1
au lieu de /dev/sdc
). Si vous n'avez pas encore de partition, vous pouvez la créer en premier. La partition peut (essentiellement) être la taille de tout le disque, si vous voulez. Même si vous ne voulez que une partition sur le disque, vous devez toujours créer la partition. De nombreux utilitaires et applications (ainsi que les utilisateurs!) Ne fonctionneront pas ou se comporteront de manière étrange si vos systèmes de fichiers ne sont pas sur des partitions .
Si vous savez vraiment ce que vous faites et que vous êtes sûr de vouloir créer un système de fichiers qui ne fait pas partie d'une partition, vous pouvez faire make mkfs.ext3
faites cela sans demander à l'utilisateur, en utilisant l'indicateur -F
. Ceci est presque toujours préférable à simuler une entrée interactive avec un tuya (c'est plus simple, plus auto-documenté, et que se passe-t-il si quelque chose d'inattendu se produit et si la question est autre chose, comme le périphérique déjà monté?). D'autre part, dans certaines situations (avec certains utilitaires), vous devrez peut-être canaliser y
ou yes
vers un utilitaire, c'est donc une bonne technique à connaître.
D'après la description de l'indicateur -F
dans man mkfs.ext3
:
Forcer mke2fs à créer un système de fichiers, même si le périphérique spécifié n'est pas une partition sur un périphérique spécial en mode bloc, ou si d'autres paramètres n'ont pas de sens. Afin de forcer mke2fs à créer un système de fichiers même si le système de fichiers semble être en cours d'utilisation ou est monté (chose vraiment dangereuse), cette option doit être spécifié deux fois.
Donc, vous pouvez utiliser mkfs.ext3 -F /dev/sdc
.
Mais, pour réitérer, , vous ne devriez probablement pas faire cela du tout, car les systèmes de fichiers devraient presque toujours être créés sur une partition .
Il n'y a pas d'option -y
pour mkfs.ext3
, vous pouvez vérifier en lisant sa page de manuel (man mkfs.ext3
). Cependant, il existe un programme appelé yes
qui est spécialement conçu pour faire ce que vous voulez:
NAME
yes - output a string repeatedly until killed
Donc, vous pourriez courir:
yes | mkfs.ext3 /dev/sdc
Cependant, gardez à l’esprit que vous essayez de créer un système de fichiers sur l’ensemble du périphérique plutôt que sur une seule partition. C’est probablement pas que veux-tu faire. Vous devez d’abord créer une partition sur le disque et puis créer un système de fichiers sur cette partition.