Removendo o prompt de desmontar discos de partição durante a instalação não assistida do Ubuntu

1

Estou tentando criar uma instalação completamente autônoma do Ubuntu e removi quase todas as solicitações possíveis do processo de instalação. O único prompt restante é aquele mostrado no texto abaixo, que me pede para desmontar partições montadas. A parte chata é que não importa para mim se eu escolhi sim ou não, então o prompt inteiro é inútil para o meu aplicativo. Além disso, nada que eu tentei impediu que esse prompt aparecesse. Alguém tem alguma sugestão de como eu posso evitar que esse aviso me incomode de novo?

The installer has detected that the following disks have mounted partitions:

/dev/sda

Do you want the installer to try to unmount the partitionson these disks before continuing? If you leave them mounted you will not be able to create, delete, or resize partitions on these disks, but you may be able to install to existing partitions there.

Unmount partitions that are in use?

    
por David 10.06.2015 / 20:42

2 respostas

1

Não tenho muita experiência em modificar a instalação do Ubuntu.

Mas a coisa mais fácil (e possivelmente mais segura) seria desmontar automaticamente cada /dev/sdXY que está atualmente montado, exceto aquele com ponto de montagem em / . Eu construí o seguinte comando bash:

umount LC_ALL=en_US.UTF8 mount | grep -P '^/dev/sd' | grep -v 'on / type' | awk '{print $1}'

Para explicar como funciona, vou dividir o comando por comando:

  • LC_ALL=en_US.UTF8 mount lista as unidades atualmente montadas no seguinte formato, forçando uma localidade inglesa:

    /dev/devicefile on mountpoint type filesystem (mount options)
    

    por exemplo,

    /dev/sda2 on / type ext4 (rw,errors=remount-ro)
    proc on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    
  • | grep -P '^/dev/sd' lista os dispositivos atualmente montados e usa todas as linhas, começando com /dev/sd , ou seja, filtrando para cada dispositivo de disco sólido.

  • | grep -v 'on / type' remove a partição raiz do sistema ativo dessa seleção, portanto, você não desmontará o próprio instalador;)

  • awk '{print $1}' Divide as linhas simples usando qualquer espaço em branco como delimitador e retorna o primeiro elemento da linha de divisão, que é o arquivo de dispositivo udev, portanto, a saída será parecida com esta:

    /dev/sda1
    /dev/sdb1
    

Essa saída é finalmente passada para umount (deve ser executada como root), o que desmonta essas partições, permitindo uma instalação segura sem prompt.

    
por s3lph 10.06.2015 / 22:32
1

Isso é semelhante à linha de raciocínio de outra resposta, mas com um exemplo completo de código testado.

Eu estava me deparando com o mesmo problema e, finalmente, por sorte, deparei com um conjunto de slides que me permitiram automatizar isso e havia um repositório de código acompanhante com o arquivo de pré-configuração completo. link

Muitas pessoas sugerem o uso de preseed/early_command umount /media/* , mas isso não funcionou por um bom tempo devido ao momento em que a porção preseed é executada em comparação com o particionamento.

A maneira correta de fazer isso é adicionar o seguinte em qualquer lugar em seu arquivo preseed que é referenciado pelo comando boot.

d-i partman/early_command string \ USBDEV=$(list-devices usb-partition | sed "s/\(.*\).//");\ BOOTDEV=$(list-devices disk | grep -v "$USBDEV" | head -1);\ debconf-set partman-auto/disk $BOOTDEV;\ debconf-set grub-installer/bootdev $BOOTDEV; \ umount /media;

    
por dragon788 11.07.2017 / 00:06