Автоматически скажите да, чтобы создать файловую систему ext3 на диске с mkfs.ext3
Я работаю над сценарием, в котором я создаю файловую систему ext3 на диске, проблема в том, что сценарий просит пользователя сказать да или нет:
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)
Я пытался поставить -y до mkfs и после sdc, но это не сработало. Есть ли у кого-нибудь решения, чтобы сделать это без взаимодействия с пользователем?
2 ответа
Вы, вероятно, не должны создавать файловую систему на весь диск. Вместо этого вы должны сделать это на разделе на диске (что-то вроде /dev/sdc1
скорее, чем /dev/sdc
). Если у вас еще нет раздела, вы можете сделать это первым. Раздел может (по существу) быть размером всего диска, если хотите. Даже если вам нужен только один раздел на диске, вам все равно нужно создать раздел. Многие утилиты и приложения (и люди!) Не будут работать или будут вести себя странно, если ваши файловые системы не находятся на разделах.
Если вы действительно знаете, что делаете, и уверены, что хотите создать файловую систему, которая не является частью какого-либо раздела, вы можете сделать mkfs.ext3
сделать это без запроса пользователя, используя -F
флаг. Это почти всегда предпочтительнее, чем симуляция интерактивного ввода с помощью конвейера (это проще, более самодокументируется, а что если произойдет что-то неожиданное, а вопрос будет в другом, например, в устройстве, которое уже монтируется?). С другой стороны, в некоторых ситуациях (с некоторыми утилитами) вам может понадобиться y
или же yes
на полезность, так что это хорошая техника, чтобы быть в курсе.
Из описания -F
флаг в man mkfs.ext3
:
Вынудите mke2fs создать файловую систему, даже если указанное устройство не является разделом на блочном специальном устройстве или если другие параметры не имеют смысла. Чтобы заставить mke2fs создать файловую систему, даже если файловая система, кажется, используется или смонтирована (это действительно опасная вещь), эту опцию необходимо указать дважды.
Итак, вы можете использовать mkfs.ext3 -F /dev/sdc
,
Но, повторюсь, вы, вероятно, не должны делать этого вообще, потому что файловые системы должны почти всегда создаваться в разделе.
Здесь нет -y
вариант для mkfs.ext3
Вы можете проверить, прочитав на его странице руководства (man mkfs.ext3
). Тем не менее, есть программа под названием yes
это специально разработано, чтобы делать то, что вы хотите:
NAME
yes - output a string repeatedly until killed
Итак, вы можете запустить:
yes | mkfs.ext3 /dev/sdc
Однако имейте в виду, что вы пытаетесь создать файловую систему на всем устройстве, а не на одном разделе, и это, вероятно, не то, что вы хотите сделать. Сначала вы должны создать раздел на диске, а затем создать файловую систему в этом разделе.