Você recebe esta mensagem de erro porque /dev/sdb
tem uma partição (ou seja, /dev/sdb1
) e a chamada mkfs também substituiria todas ou partes de sua tabela de partições. Na pior das hipóteses, o seu sistema de arquivos não seria utilizável. Ou você simplesmente perderá uma tabela de partições que talvez ainda precise. Como os arquivos do dispositivo de partição e a tabela de partições reais no disco devem contar a mesma história, eles estão indiscutivelmente 'em uso' pelo kernel.
Assim, a regra simples é: se você quiser criar seu sistema de arquivos em todo o dispositivo de disco, certifique-se de que todas as partições sejam excluídas antes. Por exemplo:
# ls /dev/sdb*
/dev/sdb /dev/sdb1
# sfdisk --delete /dev/sdb
# sfdisk --list /dev/sdb
# ls /dev/sdb*
/dev/sdb
Normalmente, a ferramenta de particionamento cuida de notificar o kernel para atualizar seus arquivos de dispositivos de partição. Mas por vezes (por exemplo, para dispositivos de loopback) pode ser necessário removê-los explicitamente (após a remoção da tabela de partições), e. via partx -dv mydev
e / ou kpartx -dv mydev
.
Observe que um kpartx -av mydev
anterior pode criar os dispositivos de partição como /dev/mapper/mydev*
em vez de /dev/mydev*
. Quando eles estão presentes, então o mkfs reclama da mesma forma.