Fundo
Eu tinha um novo sistema no qual passei muito tempo configurando o software para executar todos os tipos de serviços e então descobri que a unidade era potencialmente instável. Então decidi substituir o disco, mantendo o conteúdo do novo disco.
O disco do sistema também teve um problema ao inicializar corretamente kernel
que não consegui consertar (segui todas as grub
instruções, mas ele simplesmente não inicializava corretamente kernel
por padrão, apenas se você escolhesse manualmente o correto). Então, imaginei que a melhor maneira era simplesmente fazer uma nova instalação Fedora Server
no novo disco e isso resolveria o problema de inicialização ao longo do caminho.
O que aconteceu
O novo disco era muito maior, então particionei-o de maneira um pouco diferente durante o processo de instalação. Em seguida, removi a unidade e coloquei o disco do sistema novo e o antigo em outro servidor próximo. Por precaução, guardei fstab
o novo disco do sistema, sabendo que ele tinha a partição UUIDs
.
Há muitas maneiras de mover as coisas e decidi que queria uma partição raiz limpa no novo disco do sistema. Achei dd
que poderia fazer isso, mas estou acostumado a usá-lo onde as partições são do mesmo tamanho e estava um pouco inseguro, então apenas reformatei a partição raiz ("/") com gparted
. Em seguida, movi os arquivos usando ferramentas normais do sistema operacional. Em seguida, cortei e colei o UUID
material da nova instalação e inseri-o no fstab
servidor que estava consertando.
Tudo correu bem.
Eu então tentei inicializar o sistema. Ele postou, depois foi para o grub
gerenciador de boot, selecionou automaticamente o kernel correto e pronto! ... Até que não aconteceu!
Ele chegou a "mostrar a tela de inicialização do Plymouth" ou algo parecido, fez uma pausa e depois emitiu vários avisos de tempo limite de algo que se autodenominava dracut
. A partir daqui, tirei uma captura de tela com meu telefone. Diz:
Warning: Could not boot.
Starting Dracut Emergency Shell...
Warning: /dev/disk/by-uuid/<a uuid> does not exist
Generating "/run/initramfs/rdsosreport.txt"
seguido por uma sugestão para usar journalctl
e talvez salvar rdsosreport.txt
para relatórios de bugs.
ACIMA! O que fazer? Eu procurei de alto a baixo por isso Warning [...] does not exist
e dracut emergency shell
pelas coisas citadas acima. Nada!
Responder1
Atualizar fstab
É necessário atualizar /etc/fstab
os arquivos com o UUID adequado da partição
Atualizar criptotab
Se a sua partição anterior foi criptografada, você precisa remover a entrada de/etc/crypttab
Se sua nova partição estiver criptografada, você precisará adicionar a entrada correspondente no/etc/crypttab
Regenerar initramfs
Depois de atualizar o arquivo /etc/fstab
e /etc/crypttab
você precisa atualizar a imagem initramfs usando dracut.
Você pode atualizar a imagem do dracut do shell de emergência do dracut executando
# dracut --hostonly --regenerate-all --force
Referências
Responder2
A mensagem:
Warning: /dev/disk/by-uuid/<uuid> does not exist
é uma pista importante.
Acontece que a partição raiz UUID
é armazenada em dois locais na grub2
parte da partição do servidor Fedora moderno /boot
. Mas neste cenário, existem na verdade três UUID
problemas.
A reformatação da partição raiz ("/") na verdade alterou o arquivo UUID
.Então, o novo UUID
tem que ser primeiro descoberto e depois colocado nos locais certos. Há muitas maneiras de encontrar, UUIDs
mas uma ferramenta de linha de comando para fazer isso é blkid
- como neste exemplo:
# blkid
/dev/sda1: UUID="64bbac09-1a12-4bea-8873-212ffb56f2a8" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="8a09913a-fdb2-42a0-98e3-6b89e16374d2"
Observe que para cada partição, há duas UUIDs
mostradas por esta ferramenta; você quer o primeiro deles. Observe também que usuários não privilegiados não podem executar arquivos blkid
.
Aqui estão os três locais onde a partição raiz UUID
precisa estar:
- Na
/etc/fstab
linha onde a montagem da partição raiz é descrita e; - Na
/boot/grub2.cfg
linha configurando as opções do kernel. A maneira mais rápida de encontrá-lo é procurar o primeiro,UUID
se ainda o tiver. Ou procure"set kernelopts="root=UUID="
, e; - In
/boot/grub2/grubenv
em uma linha semelhante à linha citada no/boot/grub2.cfg
arquivo. Procurar:kernelopts=root=UUID=
Lembre-se de alterar apenas o UUID novo e deixar todo o resto como estava. Talvez faça um backup do arquivo antes de editá-lo, só para garantir!