Ubuntu em USB .. Inicializa a partir de HDD fixo?

3

Estou tendo o Ubuntu 12.04 instalado minimamente no pen drive USB; que eu uso em vários sistemas como o SO portátil.

Eu estava pensando em edit the boot parameters para que, antes que o sistema operacional principal do Ubuntu fosse carregado, ele mostrasse uma opção para Boot from Hard Drive por 5 segundos e depois inicializasse no Ubuntu.

Dessa forma, poderei ter a opção de inicializar o sistema operacional instalado no disco rígido, sem remover ou desconectar meu pendrive do ubuntu.

Como edito os parâmetros de inicialização para conseguir isso?

    
por Z9iT 23.05.2012 / 23:07

2 respostas

4

Este é realmente um cenário muito mais complicado do que parece a princípio, devido à tendência irritante que quase todos os BIOSs têm de reordenar como eles apresentam unidades de modo que a unidade da qual você inicializou é sempre a "primeira" unidade; é também o que alguns bootloaders (como os da Microsoft) esperam (ou seja, as coisas não funcionarão corretamente se você tentar encadear no Windows se parecer que a unidade que contém o Windows não é a "primeira" listada pelo BIOS). Você não consegue esse problema ao inicializar a partir do CD porque os CDs são tratados separadamente dos discos rígidos e não mudam a ordem. Há também o fato de que pode haver mais de uma unidade interna para escolher, portanto, você deve ser capaz de selecionar qual delas deseja inicializar nesse caso.

Para isso, o Ubuntu tem uma mudança no grub-mkconfig, de tal forma que a configuração GRUB_TIMEOUT em / etc / default / grub é ignorada, a menos que outro SO seja detectado (com a idéia de que se você não tiver outro sistema operacional, o computador deve inicializar mais rápido, não esperando no menu do grub, a menos que você segure a tecla Shift). A solução abaixo lida com todos esses problemas e espero ter comentários suficientes para deixar claro o que está sendo feito.

Execute gksudo gedit /boot/grub/custom.cfg e copie e cole o seguinte:

# Set grub's timeout to 5 secons. By setting it here we are overriding any
# settings for the timeout in /etc/default/grub. This is to be sure that we get
# a five second timeout even if Ubuntu's grub-mkconfig thinks it's the only
# Operating System and disables showing of the menu.
timeout=5 

insmod regexp

# Grab just the drive portion of $prefix, to determine what drive we booted
# from.
# The third parameter in the following command is a regular expression which
# says to capture just the "hdX" portion of a prefix like
# "(hd1,msdos5)/boot/grub". Note that the parentheses in the regular expression
# denote what needs to be captured (like in  perl and most other regular
# expression engines), they're not the parentheses that denote a device in grub.
regexp --set=current_drive '(hd.)' "$prefix"

# Loop through all drives (but not partitions)
for drive in *; do

  # If the drive is the same as the one we're booted from just continue on to
  # the next without creating a menu entry for it.
  if [ "$drive" = "(${current_drive})" ]; then
    continue
  fi

  # Make a menu entry with the device name of the drive in the title
  menuentry "Chainload $drive" "$drive" {
    drive=""
    root="$drive"

    # Swap the drive currently designated as (hd0) with the drive we want to
    # chainload. Thus the drive we are about to chainload will appear to be the
    # first drive to the bootloader we chainload.
    drivemap -s "(hd0)" "$drive"

    chainloader +1
  }
done

Depois salve o arquivo e pronto.

Ao inicializar, se houver outras unidades disponíveis para serem carregadas em cadeia, você verá entradas de menu para elas (e, se não houver, você não verá). A entrada do menu padrão permanecerá inalterada, o que significa que o Ubuntu deve inicializar por padrão e você terá um tempo limite de 5 segundos antes que isso aconteça. Como você está editando o /boot/grub/custom.cfg em vez de /etc/grub.d/40_custom, nem precisa executar o update-grub.

    
por Jordan Uggla 05.06.2012 / 06:31
2

1.

inicialize no ubuntu a partir do USB. Terminal aberto.

2.1 Adicionar entrada para inicializar o disco rígido

gksudo gedit /etc/grub.d/40_custom

anexe abaixo da entrada. Não remova nenhuma linha.

menuentry "Boot From Hard disk" {
    set root=(hd0,1)
    chainloader +1
}

2.2 Alterar entrada padrão para inicializar

gksudo gedit /etc/default/grub

altere GRUB_DEFAULT=0 para GRUB_DEFAULT=X here X é o número de entradas para inicializar menos um. Se você deseja inicializar a terceira entrada no bootloader, então X deve ser 2 (grub conta a entrada de zero ).

Salve.

2.3 Altere o tempo limite para inicializar no sistema operacional padrão

gksudo gedit /etc/default/grub

altere GRUB_TIMEOUT=30 para GRUB_TIMEOUT=X here X é o número de segundos a aguardar antes de inicializar no sistema operacional os. (Eu defini 3 segundos)

3.

sudo update-grub

4.

reinicie e selecione Boot From Hard disk

    
por virpara 01.06.2012 / 17:23