Mover partição do sistema e inicializar a partir dele

2

Estou executando um sistema Linux Mint em um antigo disco rígido do Windows (Vista). Depois de um ano ou mais de nunca inicializar o Windows e de ter problemas de espaço na partição do sistema Linux, decidi limpar a partição do Windows (agora partição primária /dev/sda1 abaixo) e mover o sistema Linux para ela. Eu sigo o este guia, e tudo parece funcionar bem até eu reiniciar depois de ter movido e reconfigurado o grub2, o Master Boot Record e tudo, quando o sistema continua a arrancar com a partição antiga. Nenhuma maneira de fazer o boot a partir de sda1 .

Minha tabela de partições:

Euconseguieditarogrub.cfg,/etc/fstabnonovolocal,atualizaroMBR,masosistemanãoinicializanapartiçãoqueeuquero.Nãoimportaoqueeufaça,eusempreacabosaindodoantigo.

Devoadmitirquenemtudopareciaperfeitamentenoguia.Ogrub.cfgtinhacoisasinesperadasnele.Aquiestáumtrechodogrub.cfgondeeutivequeimprovisar.Estaéaversãooriginal:

if["$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Linux Mint 17.1 Cinnamon 64-bit, 3.13.0-37-generic (/dev/sda5)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  6b3cf8c6-8c6e-4c24-8f01-90276ef061c1
    else
      search --no-floppy --fs-uuid --set=root 6b3cf8c6-8c6e-4c24-8f01-90276ef061c1
    fi
    linux   /boot/vmlinuz-3.13.0-37-generic root=UUID=6b3cf8c6-8c6e-4c24-8f01-90276ef061c1 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.13.0-37-generic
}

Aqui substituí o UUID pela nova partição conforme necessário, mas não entendi como alterar o root=hd0,msdos5 . Então não mudou isso. O guia diz para:

Using gedit, find and replace every "(hdX,Y)" appropriately

X and Y should be replaced based on your new partition's /dev/sdZY or /dev/hdZY, if Z is 'a' then X should be '0', if Z is 'b' then X should be '1' and so on.

Posso imaginar que isso acontece porque o grub foi configurado para ativar a inicialização no Windows. Havia uma entrada de menu como essa, que eu removi completamente no novo grub.cfg:

menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-BE8602CA860282DF' {
    insmod part_msdos
    insmod ntfs
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  BE8602CA860282DF
    else
      search --no-floppy --fs-uuid --set=root BE8602CA860282DF
    fi
    parttool ${root} hidden-
    chainloader +1
}

Eu sinto que essas entradas de hd0,msdos devem ser diferentes, mas não consigo descobrir o que inserir.

De qualquer forma, o sistema continua a arrancar a partir da partição antiga, eu ainda estou sem espaço no disco do sistema e gostaria muito de encontrar uma solução! Obrigado!

    
por Max 22.03.2016 / 18:23

2 respostas

0

A verdade é que você pode aparar:

set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  6b3cf8c6-8c6e-4c24-8f01-90276ef061c1
else
  search --no-floppy --fs-uuid --set=root 6b3cf8c6-8c6e-4c24-8f01-90276ef061c1
fi

até:

search --fs-uuid --set=root 6b3cf8c6-8c6e-4c24-8f01-90276ef061c1

ou alternativamente:

search -u -s 6b3cf8c6-8c6e-4c24-8f01-90276ef061c1

É claro que você pode apenas alterar todo o hd0,msdos5 para hd0,msdos1 . sda5 to sda1 ; msdos5 to msdos1 , não é direto? FWIW, msdos here significa "tabela de partições MSDOS", que é geralmente considerada um nome mais adequado de "tabela de partições MBR". hd0 e ahci0 nem sempre acabam sendo sda no sistema inicializado.

Mas o que você precisa fazer antes de mexer no grub.cfg é certificar-se de que o código de inicialização do grub no MBR (e na lacuna pós-MBR) irá procurar pelo grub.cfg na sua partição desejada. (Você alegou que você updated the MBR , mas eu me pergunto o que exatamente você fez.)

mount /dev/sda1 /mnt
grub-install --boot-directory /mnt/boot /dev/sda

Edite o grub.cfg e o fstab:

$EDITOR /mnt/boot/grub/grub.cfg
$EDITOR /mnt/etc/fstab

Btw, se você editar o grub.cfg, isso significa que você não deve mais usar o utilitário como update-grub ou grub-mkconfig , a menos que você atualize seu / etc / default / grub posteriormente.

No entanto, não tenho certeza se você pode gerenciar mount /dev/sda1 /mnt , pois de acordo com sua captura de tela do gparted, sda1 e sda5 foram montados / de alguma forma. Então eu nem sei quais /boot/grub/grub.cfg estavam realmente sendo modificados quando você o editou. E eu não sei se pode ser tão simples quanto umount / para consertar essa bagunça. Eu diria que é melhor você consertar tudo com um meio vivo.

    
por 24.03.2016 / 07:36
0

É claro que, uma vez que você queira inicializar a partir de sda1, você deve alterar todas as suas instâncias msdos5 para msdos1 na 5ª etapa do manual que você referiu. Agora você precisa seguir os passos restantes para terminar.

    
por 23.03.2016 / 09:04