LINUX.ORG.RU

GRUB и USB-HDD


0

1

Проблема вот в чем: устанавливаю убунту на внешний десткий диск, после установки выдает что-то типа:

error, dive not found

rescue>

это если в биосе жесткий диск выставлен распознаватся как флешка. тоесть после чтения загрузочного сектора не находится раздел с установленым грубом? так же...

а если выставить в биосе распознаватся как жесткий жиск то начинается загрузка с раздела с грабом но тоже неуспешно потому как видимо не совпадает нумерация разделов после установки...

если создаю на жестком диске LiveCD то грузится всегда или устанавливаю PuppyLinux тоже всегда грузится на всех компах, независимо от того как выбран винт (по умолчанию там авто).

вот в чем вопрос: как задать в загрузочном секторе чтоб всегда читало с нужного мне раздела на этом устройстве незавилимо от компа??

Буду очень признателен за ответ!

> а если выставить в биосе распознаватся как жесткий жиск то начинается загрузка с раздела с грабом но тоже неуспешно
С таким же сообщением об ошибке?

потому как видимо не совпадает нумерация разделов после установки...

Неправда, GRUB2 использует для всего UUID.

Если хотите, можете поставить на жёсткий диск grub-legacy или extlinux. Это довольно радикально, но должно помочь.

AITap ★★★★★
()
Ответ на: комментарий от AITap

> С таким же сообщением об ошибке?

не успеваю прочитать, но то что доходит до загрузки grub.cfg это точно - я написал там текстовое сообщение в самом начале - оно вылазит.

Неправда, GRUB2 использует для всего UUID.

нет, показать?

меня больше интересует чтоб всегда находился раздел с системой, на любой машине независимо от того как распознался жесткий диск

qwe1234
() автор топика
Ответ на: комментарий от qwe1234

> нет, показать?
Не знал, покажите.

меня больше интересует чтоб всегда находился раздел с системой, на любой машине независимо от того как распознался жесткий диск

Смена загрузчика точно не устраивает?

Кстати, задача весьма нетривиальная. Вам может потребоваться отформатировать диск как USB-ZIP и поставить в MBR один загрузчик, а в загрузочный сектор единственного раздела - другой.

AITap ★★★★★
()
Ответ на: комментарий от AITap

вот конфиг

echo "QWERTY12"

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(/dev/sdb,msdos4)'
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(/dev/sdb,msdos4)'
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	set gfxpayload=$linux_gfx_mode
	insmod part_msdos
	insmod ext2
	set root='(/dev/sdb,msdos4)'
	search --no-floppy --fs-uuid --set=root af9e1122-3668-4c2f-ad6c-248d953da41a
	linux	/boot/vmlinuz-2.6.38-8-generic root=UUID=af9e1122-3668-4c2f-ad6c-248d953da41a ro   vt.handoff=7
	initrd	/boot/initrd.img-2.6.38-8-generic
}

menuentry "Puppy Linux 'Lucid Puppy'" {
#    insmod part_msdos
#    insmod ext2
#    set root='(/dev/sdb,msdos1)' 
#    set root='(hd1,1)'
    search --no-floppy --fs-uuid --set=root 184accd7-3688-48ad-a602-8f3e9e42dded
    linux /vmlinuz root=UUID=184accd7-3688-48ad-a602-8f3e9e42dded
    initrd /initrd.gz
}

Смена загрузчика точно не устраивает?

устраивает, мне главное чтоб оно грузилось везде - по типу liveCD. но какой загрузчик выбрать? и как оно работать будет?

qwe1234
() автор топика
Ответ на: комментарий от qwe1234

Хм, а у меня в Debian за каждым set root следует search --fs-uuid --set=root.

но какой загрузчик выбрать?

Начните с extlinux.

и как оно работать будет?

cat mbr.bin > /dev/sdX
extlinux -d boot /dev/sdXY
mount /dev/sdXY /mnt
cat >/mnt/boot/extlinux.cfg <<END
default ubuntu
timeout 5
say Press enter to boot
label ubuntu
kernel /vmlinuz
append root=UUID=... ro quiet
initrd /initrd.img
END
umount /mnt

В / должны быть симлинки /vmlinuz -> последняя версия ядра и /initrd.img -> initramfs к последней версии ядра. Насколько мне известно, в Ubuntu они создаются автоматически.

AITap ★★★★★
()
Ответ на: комментарий от AITap

спасибо, гляну в этом напралении. потом отпишу

qwe1234
() автор топика
Ответ на: комментарий от AITap

>cat mbr.bin > /dev/sdX на эту команду выдавало что нет доступа, хотя я все отмонтировал воспользовался dd, нормально сработало

вообщем я установил extlinux и у меня вышло нормально с ним загрузится. указал root=UUID= . вопрос можно ли задать root= так чтоб руту присвоился тот раздел с которого идет чтение, не указывая даже UUID??

qwe1234
() автор топика
Ответ на: комментарий от qwe1234

> вопрос можно ли задать root= так чтоб руту присвоился тот раздел с которого идет чтение, не указывая даже UUID??
Нет. Linux понятия не имеет, что там BIOS скормило загрузчику в качестве источника данных.

AITap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.