Como faço para o script mkfs perguntar “é um dispositivo inteiro, não apenas uma partição! Prossiga mesmo assim?

4

Estou tentando criar um script que formata um volume do Amazon EC2 EBS, para que eu possa montá-lo.

Na linha de comando, é assim:

> mkfs -q -t ext4 /dev/sdf
/dev/sdf is entire device, not just one partition!
Proceed anyway? (y,n) 

(O comando está correto; não é necessário criar uma tabela de partição para o meu propósito)

Meu problema: como esse comando deve ser executado em um script automatizado, não posso ter essa pergunta no terminal; ninguém responderá e o roteiro será interrompido. Como evito isso?

Eu tentei:

> echo y | mkfs -q -t ext4 /dev/sdf

mas isso não funciona. A opção -q também não faz diferença.

    
por Johannes Ernst 02.08.2012 / 06:29

2 respostas

8

Na página de manual :

   -F     Force mke2fs to create a filesystem, even if the specified device is not a partition on a block special device, or  if  other
          parameters do not make sense.

Portanto, chame mkfs.ext4 diretamente em vez de via mkfs e adicione o parâmetro -F para ignorar esse aviso.

    
por 02.08.2012 / 07:47
1

expect é o que você está procurando. Tente algo assim:

#!/usr/bin/expect

spawn mkfs -q -t ext4 /dev/sdf
expect "/dev/sdf is entire device, not just one partition!\nProceed anyway? (y,n)"
send -- "y\r"

expect eof
    
por 02.08.2012 / 07:26