O GRUB não inicializa persistentemente - “hd0,4 não encontrado”

1

Estou tentando fazer um pendrive USB persistente do Ubuntu 17.04 com o mkusb (dus). Eu segui as instruções no site mkusb explicitamente, e eu tentei a maioria das variações que eu posso pensar, tudo sem alegria. Quando eu seleciono o USB persistente no BIOS, o grub é inicializado a partir dele; Eu seleciono o Ubuntu persistente; grub objetos com hd0,4 não encontrados. Eu tenho procurado online por uma solução há vários dias.

Algumas das coisas que eu tentei: - Criando a unidade persistente em uma segunda unidade flash durante a inicialização de uma unidade flash USB ao vivo; - Todas as combinações de modo legado da BIOS e inicialização segura ativada e desativada; - msdos e tabelas de partição gpt na unidade de destino; - diferentes drives flash; - quantidades diferentes de memória persistente; - etc.

Qualquer sugestão será muito apreciada.

Meu sistema: Laptop HP com AMD64 quad core, 16GB de memória, inicialização (geralmente) no modo seguro UEFI. BIOS é o mais recente. O sistema operacional instalado é o Ubuntu 17.04.

Obrigado !! -Warren

Editar # 1 para adicionar:

Em uma investigação mais aprofundada, parece que o grub é carregado a partir do flash drive como hd2, não como hd0. Isso é provavelmente porque os dois discos rígidos internos são descobertos pelo BIOS primeiro e são reconhecidos como hd0 e hd1. Como obter o grub em um flash drive persistente para reconhecer que ele foi carregado a partir do hd2 e não do hd0 está atualmente acima do meu nível de pagamento.

Editar # 2 para adicionar:

@ sudodus- obrigado pela ajuda. Algumas das informações solicitadas:

Os componentes mkusb e dus são todos carregados do ppa e são da versão 12.0.9. O BIOS tem o modo legado desativado e a inicialização segura ativada. Eu tentei editar os comandos do grub ("e") e mudar hd0 para hd2. Isso funciona! A unidade flash persistente é inicializada conforme o esperado. (Quer saber porque o grub não apenas coloca o root no disco do qual foi carregado ...?)

Saída dos comandos -

warren@warren-laptop:~$ sudo lsblk -fm
NAME   FSTYPE  LABEL              UUID                                 MOUNTPOINT                       NAME     SIZE OWNER GROUP MODE
sda                                                                                                     sda    953.9G root  disk  brw-rw----
├─sda1 vfat                       1168-7BED                            /boot/efi                        ├─sda1   256M root  disk  brw-rw----
├─sda2 ext4                       182d8f07-567e-4514-9f99-49b78767f195 /                                ├─sda2 921.6G root  disk  brw-rw----
└─sda3 swap                       8187044e-0939-4868-b81a-b5bc64bd9e7c [SWAP]                           └─sda3    32G root  disk  brw-rw----
sdb                                                                                                     sdb    698.7G root  disk  brw-rw----
└─sdb1 ext4    devel              27a0c109-82be-4ceb-b572-dedbeb412744 /home/warren/devel               └─sdb1 698.6G root  disk  brw-rw----
sdc                                                                                                     sdc     14.5G root  disk  brw-rw----
├─sdc1 ntfs    usbdata            134E2DAF76E6A9A4                     /media/warren/usbdata            ├─sdc1   3.2G root  disk  brw-rw----
├─sdc2                                                                                                  ├─sdc2     1M root  disk  brw-rw----
├─sdc3 vfat    usbboot            2EA6-44A9                                                             ├─sdc3   122M root  disk  brw-rw----
├─sdc4 iso9660 Ubuntu 17.04 amd64 2017-04-12-03-44-04-00               /media/warren/Ubuntu 17.04 amd64 ├─sdc4   1.5G root  disk  brw-rw----
└─sdc5 ext4    casper-rw          8a27c645-3e5c-4e7f-bf92-eb51dc0bd19f /media/warren/casper-rw          └─sdc5   9.6G root  disk  brw-rw----
warren@warren-laptop:~$ sudo parted -ls
Model: ATA SanDisk SD8SB8U1 (scsi)
Disk /dev/sda: 1024GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  269MB   268MB   fat32           efi   boot, esp
 2      269MB   990GB   990GB   ext4
 3      990GB   1024GB  34.4GB  linux-swap(v1)


Model: ATA ST750LX003-1AC15 (scsi)
Disk /dev/sdb: 750GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name   Flags
 1      16.8MB  750GB  750GB  ext4         devel


Model:  Patriot Memory (scsi)
Disk /dev/sdc: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 2      1049kB  2097kB  1049kB               primary  bios_grub
 3      2097kB  130MB   128MB   fat32        primary  boot, esp
 4      130MB   1759MB  1629MB               primary
 5      1759MB  12.1GB  10.3GB  ext2         primary
 1      12.1GB  15.5GB  3436MB  ntfs         primary  msftdata


warren@warren-laptop:~$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
udev             7776108         0   7776108   0% /dev
tmpfs            1559788     10204   1549584   1% /run
/dev/sda2      951092244 187079792 715676736  21% /
tmpfs            7798928        12   7798916   1% /dev/shm
tmpfs               5120         4      5116   1% /run/lock
tmpfs            7798928         0   7798928   0% /sys/fs/cgroup
/dev/sda1         258095      3496    254599   2% /boot/efi
/dev/sdb1      720011344 242201684 441165412  36% /home/warren/devel
tmpfs            1559784       168   1559616   1% /run/user/1000
/dev/sdc4        1571328   1571328         0 100% /media/warren/Ubuntu 17.04 amd64
/dev/sdc1        3355644     17388   3338256   1% /media/warren/usbdata
/dev/sdc5        9909328     36912   9352660   1% /media/warren/casper-rw
warren@warren-laptop:~$ 

Obrigado !!

    
por Warren Severin 28.04.2017 / 17:54

2 respostas

2

Tentando encontrar um bugfix geral

Normalmente, o computador identificará a unidade de inicialização como hd0 , mas esse não é o caso em seu computador. Vou tentar encontrar uma maneira de contornar esse problema. Eu testei com o Lubuntu 17.04 no meu laptop Toshiba no modo UEFI, e não conseguiu reproduzir o bug. Então vou precisar de sua ajuda para testar qualquer bugfix que eu possa encontrar.

Editar : Eu modifiquei o shellscript dus-persistent do mkusb e carreguei a nova versão 12.1.1 no PPA instável. As principais melhorias abordam uma mudança na estrutura de inicialização do Ubuntu 17.04 e o fato de seu computador não inicializar a partir do hd0. A principal diferença é como identificar a partição nº 4 com a imagem do arquivo iso (o sistema de arquivos iso9660),

search --set=root --fs-uuid <the-UUID-of-partition-no-4>

e isso é feito automaticamente pelo mkusb-dus. Por favor, teste se resolve o problema! Você obtém a nova versão de acordo com este link,

help.ubuntu.com/community/mkusb/gui#from_the_unstable_PPA

A versão instável ainda é desenvolvida e depurada. Está disponível em ppa:mkusb/unstable através das seguintes linhas de comando,

sudo add-apt-repository universe  # this line only for standard Ubuntu

sudo add-apt-repository ppa:mkusb/unstable
sudo apt-get update
sudo apt-get install mkusb               # install
# sudo apt-get dist-upgrade              # upgrade to current version (with all other upgrades), only for installed systems
sudo apt-get install mkusb guidus dus mkusb-common
                                         # upgrade all mkusb basic components including dus

# for persistent live drives that work in UEFI and BIOS mode with 32-bit iso files, add
sudo apt-get install usb-pack-efi

Solução alternativa - bugfix no seu caso

Obrigado pelo feedback (que você editou na pergunta original). Isso torna mais fácil ajudar.

  

"Eu tentei editar os comandos do grub (" e ") e alterar hd0 para hd2 .   trabalho! A unidade flash persistente é inicializada conforme o esperado. (Wonder why grub   não apenas coloca root no disco do qual foi carregado ...?) "

Sugiro que edite o arquivo grub.cfg na partição # 3 do 'drive USB para ser persistente' (a partição 'usbboot'). Isso deve tornar a correção de bug persistente na sua unidade flash USB. Mas não funcionaria em outros computadores, que se comportam como meus computadores.

$ ls -l /media/lubuntu/usbboot/boot/grub/grub.cfg 
-rw-r--r-- 1 lubuntu lubuntu 1312 Apr 29 06:31 /media/lubuntu/usbboot/boot/grub/grub.cfg

grub.cfg tem o seguinte conteúdo, no qual você modifica hd0,4 para hd2,4 . (Você também pode modificar hd0,3 para hd2,3 , mas o Memtest86 + não funcionará no modo UEFI de qualquer maneira).

No seu caso, você pode esperar 'Ubuntu' em vez de 'Lubuntu', mas, do contrário, seria o mesmo.

set timeout=10
set default=0

menuentry "Lubuntu-17.04-desktop-amd64.iso - persistent live" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash persistent --
 initrd ($root)/casper/initrd.lz
}
menuentry "Lubuntu-17.04-desktop-amd64.iso - persistent live to RAM" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash toram persistent --
 initrd ($root)/casper/initrd.lz
}
menuentry "Lubuntu-17.04-desktop-amd64.iso - live" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash --
 initrd ($root)/casper/initrd.lz
}
menuentry "Lubuntu-17.04-desktop-amd64.iso - recovery mode" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper ro recovery nomodeset
 initrd ($root)/casper/initrd.lz
}
submenu "Memory test" {
 menuentry "Memtest86+ works in BIOS alias CSM mode, but not in efi (UEFI) mode"{
  echo "${grub_platform} mode; (memtest86+ does not work with efi (UEFI) mode)"
 }
 menuentry "Memtest86+ 4.20" {
  set root=(hd0,3)
  echo "${grub_platform} mode; (memtest86+ does not work with efi (UEFI) mode)"
  linux16 /boot/memtest/memtest.bin
 }
 menuentry "Memtest86+-5.01" {
  set root=(hd0,3)
  echo "${grub_platform} mode; (memtest86+ does not work with efi (UEFI) mode)"
  linux16 /boot/memtest/memtest86+-5.01.bin
 }
}

Alternativa

Uma alternativa é copiar as entradas de menu de grub.cfg e modificar uma delas para ter duas alternativas para fazer com que a unidade flash USB inicialize facilmente em computadores diferentes.

...
menuentry "Ubuntu-17.04-desktop-amd64.iso - persistent live (hd2,4)" {
 set root=(hd2,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash persistent --
 initrd ($root)/casper/initrd.lz
}
menuentry "Ubuntu-17.04-desktop-amd64.iso - persistent live (hd0,4)" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash persistent --
 initrd ($root)/casper/initrd.lz
}
...
    
por sudodus 30.04.2017 / 05:53
1

Assumindo que você está inicializando com o grub (modo UEFI) e não com o syslinux (modo legado), você pode simplesmente editar os comandos grub da tela do menu grub digitando "e", então usando as setas mover para hd0 e mudar para hd2. Instruções na parte inferior da tela do grub, controle X ou F10 para inicializar.

Se as alterações funcionarem, tente editá-las no arquivo grub.cfg. Sudodus está certo, update-grub não funcionará neste caso.

Vou deixar a discussão do mkusb para o sudodus, fiquei confuso ao olhar para um stick USB muito antigo criado por uma versão mais antiga.

    
por ubfan1 28.04.2017 / 21:41