Automático diz sim para fazer o sistema de arquivos ext3 no disco

4

Estou trabalhando em um script onde faço um sistema de arquivos ext3 em um disco, o problema é que o script pede ao usuário que diga sim ou não:

 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)

Eu tentei colocar -y antes do mkfs e depois do sdc, mas isso não funcionou. Alguém tem alguma solução para fazer isso sem interação do usuário?

    
por user3185936 02.03.2014 / 19:15

2 respostas

12

Você provavelmente não deve criar um sistema de arquivos em um disco inteiro. Em vez disso, você deve fazer isso em uma partição no disco (o que seria algo como /dev/sdc1 em vez de /dev/sdc ). Se você ainda não tem uma partição, pode fazer isso primeiro. A partição pode (essencialmente) ser o tamanho do disco inteiro, se você quiser. Mesmo quando você quer apenas uma partição no disco, você ainda precisa fazer a partição. Muitos utilitários e aplicativos (e pessoas!) Não funcionarão ou se comportarão de maneira estranha, se seus sistemas de arquivos não estiverem em partições .

Se você realmente sabe o que está fazendo e tem certeza de que deseja criar um sistema de arquivos que não faz parte de nenhuma partição, faça mkfs.ext3 fazer isso sem avisar o usuário , usando o sinalizador -F . Quase sempre é preferível simular a entrada interativa com um pipe (é mais simples, mais auto-documentável, e se algo inesperado acontece e a pergunta é outra coisa, como o dispositivo já está sendo montado?). Por outro lado, em algumas situações (com alguns utilitários) você pode achar que você tem que canalizar y ou yes para um utilitário, então é uma boa técnica estar ciente.

A partir da descrição do sinal -F em man mkfs.ext3 :

  

Força mke2fs para criar um sistema de arquivos, mesmo que o especificado   dispositivo não é uma partição em um dispositivo especial de bloco, ou se outro   parâmetros não fazem sentido. Para forçar o mke2fs a   criar um sistema de arquivos mesmo se o sistema de arquivos parecer estar em uso ou estiver   montada (algo verdadeiramente perigoso), esta opção deve ser   especificado duas vezes.

Então, você pode usar mkfs.ext3 -F /dev/sdc .

Mas, para reiterar, você provavelmente não deve fazer isso porque os sistemas de arquivos quase sempre devem ser criados em uma partição .

    
por Eliah Kagan 02.03.2014 / 19:29
4

Não há -y opção para mkfs.ext3 , você pode verificar lendo sua página de manual ( man mkfs.ext3 ). No entanto, existe um programa chamado yes que é especificamente projetado para fazer o que você deseja:

NAME
   yes - output a string repeatedly until killed

Então, você pode executar:

 yes | mkfs.ext3  /dev/sdc

No entanto , tenha em mente que você está tentando criar um sistema de arquivos em todo o dispositivo em vez de em uma única partição e provavelmente não o que você deseja fazer . Você deve primeiro criar uma partição no disco e então criar um sistema de arquivos nessa partição.

    
por terdon 02.03.2014 / 19:22

Tags