Grub Boot da ISO com lvm

1

Em um procedimento de inicialização simples a partir de uma imagem ISO, as instruções abaixo funcionam bem:

menuentry "Ubuntu.iso" {
set isofile="/iso/ubuntu.iso"
loopback loop (hd0,3)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile      noeject noprompt --
initrd (loop)/casper/initrd.lz
}

onde hd0 é o primeiro disco rígido e 3 é o número da partição.

Eu gostaria de saber como fazer um ambiente lvm

loopback loop (hd0,3)$isofile   ----> (hd0,???)

O resultado do comando blkid é

/dev/sda1: UUID="28f0906e-d285-42dd-b3cd-18ef27b9261e" TYPE="ext2" 
/dev/sda5: UUID="Nx2a6F-O11u-sZxe-HDvm-6a2u-zdUf-suvn46" TYPE="LVM2_member" 
/dev/mapper/sal06--vg-root: UUID="2adef9b5-66de-4ffc-9c04-b33199815a35" TYPE="ext4" 
/dev/mapper/sal06--vg-swap_1: UUID="95938380-8ee5-42c9-ad1b-eee1338870db" TYPE="swap"

Meu iso está em /dev/mapper/sal06--vg-root .

    
por George Poliovei 14.06.2016 / 18:04

2 respostas

1

Finalmente eu encontrei o caminho

só precisamos adicionar para adicionar a seguinte linha em / etc / default / grub

GRUB_PRELOAD_MODULES="lvm"

depois, em /etc/grub.d/40_custom

menuentry "Ubuntu.iso" {
set isofile="/iso/ubuntu.iso"
search --no-floppy --fs-uuid --set=root <your LV uuid here >
loopback loop ($root)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile          noeject noprompt --
initrd (loop)/casper/initrd.lz

}

e pronto, aqui eu fiz um vídeo

link

    
por George Poliovei 01.07.2016 / 12:49
0

Inspirado na sua solução e na um tanto complicado que encontrei aqui , usei o seguinte, que funciona para carregar um Fedora 27 KDE iso e um Ubuntu 17.10 iso.

Acabei de anexar as seguintes linhas no arquivo /etc/grub.d/40_custom

menuentry "Live Fedora KDE 27" --class fedora {
  insmod part_msdos
  insmod lvm
  set iso_path="/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso"
  search --no-floppy --fs-uuid --set=root 6340d364-fc09-44d1-914f-b902a6394a55
  loopback loop ($root)$iso_path
  linux (loop)/isolinux/vmlinuz iso-scan/filename=${iso_path} root=live:CDLABEL=Fedora-KDE-Live-27-1-6 rootfstype=auto rd.live.image quiet
  initrd (loop)/isolinux/initrd.img
}

menuentry "Ubuntu 17.10.1" --class ubuntu {
  insmod part_msdos
  insmod lvm
  set iso_path="/erik/Downloads/transmission/ubuntu-17.10.1-desktop-amd64.iso"
  search --no-floppy --fs-uuid --set=root 6340d364-fc09-44d1-914f-b902a6394a55
  loopback loop ($root)$iso_path
  linux (loop)/casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=${iso_path} quiet splash ---
  initrd (loop)/casper/initrd.lz
}

Explicação

  • A linha que começa com set iso_path define o caminho, onde o arquivo iso pode ser encontrado no volume lógico. Quando eu inicio meu sistema, ele está em /home/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso" , mas /home é o volume lógico montado, então deixo isso de lado e começo o caminho com /erik/Downloads/…
  • A linha que começa com search tem uma estranha variável alfanumérica (o chamado UUID) no final, que começa com 6340 . Eu tenho esse número do comando

    sudo blkid
    

    que me deu, junto com outros, a seguinte linha

    /dev/mapper/fedora_pluto-home: UUID="6340d364-fc09-44d1-914f-b902a6394a55" TYPE="ext4"
    
  • Então, outra coisa importante se você quiser inicializar outros arquivos iso, são as linhas que começam com linux e initrd . Obtive-os abrindo o arquivo iso com file-roller (gui para extrair arquivos compactados) ou mc (gerenciador de arquivos do console).

    • Fedora e similares: Lá você vai para o diretório /isolinux , onde você encontrará um arquivo chamado isolinux.cfg . Lá encontrei algumas linhas começando com label , e abaixo delas as seguintes linhas importantes

      kernel vmlinuz
      append initrd=initrd.img root=live:CDLABEL=Fedora-KDE-Live-27-1-6 rd.live.image quiet
      

      que você usará para preencher as duas últimas linhas do meu grub2 menuentry .

    • Ubuntu e similares: Lá você vai para o diretório /boot/grub , onde você encontrará um arquivo chamado grub.cfg . Aqui você encontrará algumas linhas que começam com menuentry , e abaixo delas as seguintes linhas importantes

      linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---
      initrd  /casper/initrd.lz
      

      que você pode copiar.

por erik 29.01.2018 / 01:43