Eu quero adicionar um menu personalizado ao grub2 assim (como /etc/grub.d/40_custom
):
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Arch Linux" {
....some data here.....
}
e o que eu preciso é o ".... alguns dados aqui ....."
Algumas dificuldades:
-
Quando a inicialização da unidade é alterada do BIOS , por exemplo, às vezes,
disco com a partição é /dev/sda
e às vezes é /dev/sdg
. então eu uso os UUIDs para a partição. ATUALIZAÇÃO: a última vez foi /dev/sdc
!
-
O sistema Linux usa uma partição de inicialização separada, ou seja, a partição 1 é a partição /boot
, a partição 2 é a partição /root
e a partição estendida 4 é a partição /home
Aqui saída blkid de quando o Linux pensou que o disco era / dev / sdg ...
/dev/sdg1: LABEL="arch_boot" UUID="34a39f15-f1a8-46a3-88e7-00c370c3c6a2" TYPE="ext2"
/dev/sdg2: LABEL="arch_root" UUID="c670b0cf-a644-48d6-903d-dc3e49395a04" TYPE="ext2"
/dev/sdg3: UUID="b36c4dc0-f5d7-488e-80fb-4c2e14313de5" TYPE="swap"
/dev/sdg5: LABEL="arch_home" UUID="327900a5-e8f7-4dc4-be52-2f0dd97e3164" TYPE="ext4"
/dev/sdg6: LABEL="arch_adjunct" UUID="f65f0ae6-9af2-4767-b223-a199ce96c71a" TYPE="reiserfs"
Aqui está o conteúdo do Sistema Linux (que tinha o legado do grub até que o reparo de inicialização cancelasse o MBR):
⋯@64bitWS:/media$ ls arch_boot
grub initramfs-linux-fallback.img initramfs-linux.img lost+found vmlinuz-linux
⋯@64bitWS:/media$ ls arch_boot/grub
e2fs_stage1_5 iso9660_stage1_5 minix_stage1_5 stage2 vstafs_stage1_5
fat_stage1_5 jfs_stage1_5 reiserfs_stage1_5 stage2_eltorito xfs_stage1_5
ffs_stage1_5 menu.lst stage1 ufs2_stage1_5
⋯@64bitWS:/media$ ls arch_root
aur boot etc lib lost+found mnt proc run srv tmp var
bin dev home lib64 media opt root sbin sys usr
boot-info no link e em link para cada um dos casos de diferentes ordens de inicialização.
Eu sei que pode funcionar porque já funcionou antes ...
ATUALIZAÇÃO:
Corri o os-prober a partir de 10.04 (1.38 / lucid) e funcionou, ele encontrou todos os sistemas linux ao contrário de 12.04 os-prober (1.51). Então eu corri o boot-repair ( link ) novamente e ele produziu a entrada do menu do Arch Linux grub2. Ele ficou assim (de /boot/grub/grub.conf
):
menuentry 'Arch Linux' {
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd6,msdos1)'
search --no-floppy --fs-uuid --set=root 34a39f15-f1a8-46a3-88e7-00c370c3c6a2
linux /boot/vmlinuz-linux root=UUID=670b0cf-a644-48d6-903d-dc3e49395a04
initrd /boot/initramfs-linux.img
}
Idêntico à resposta proposta por Cumulus007.
Infelizmente este "novo" grub.cfg não inicializaria o Arch Linux, então ainda não há respostas ...
Last UPDATE: Parece que o grub3 do 10.04 (1.98) não pode usar UUIDs para iniciar, e como o BIOS do meu hardware mistura a ordem do disco rígido do boot ao boot, realmente conseguir um boot é um jogo de craps ... < ¬ (