LINUX.ORG.RU

Установка на SD


0

1

Возникла необходимость работать с Ubuntu, установленной на SD-карту. Систему установил, но, как оказалось, целевой ноутбук не умеет грузиться с SD. В списке устройств в BIOS только жесткий диск, SD-карта вообще не видна. Ладно, решил схитрить: установил GRUB на жесткий диск. А он мне во время загрузки:

error: no such device: 316d90cf-ee3e-4dba-bc37-5f877899f887

/etc/fstab:

...
UUID=316d90cf-ee3e-4dba-bc37-5f877899f887 / ext2 errors=remount-ro 0 1

WTF?

Есть более другие способы загружаться со встроенного кардридера без обновления BIOS (списался с производителем — они клали прибор на это и обновлять ничего не будут) и прочих извращений?

В командной строке граба при вводе команды ls карточка в кардридере показывается? Если да, то ситуация не безнадежна. Если нет, то сами понимаете, наверное.

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

В командной строке граба при вводе команды ls карточка в кардридере показывается?

Нет, не показывается, забыл в ОП уточнить. Только жесткий диск hd0 и его разделы. Все это очень странно, т.к. кардридер подключается через обычный usb, а не какой-нибудь pci.

$ lsusb
...
Bus 001 Device 006: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
...

// AnimusPEXUS

anonymous
()
Ответ на: комментарий от teod0r

Да, я прочитал вашу тему перед созданием этой. :-)

anonymous
()
Ответ на: комментарий от Lighting

Как раз читаю историю успеха, но, если я правильно понял, придется положить PLOP на жесткий диск или обычную флешку и уже оттуда грузить GRUB с SD.

// AnimusPEXUS

anonymous
()

error: no such device: 316d90cf-ee3e-4dba-bc37-5f877899f887

Логично: установленный на жёсткий диск GRUB всё равно не может видеть SD-карту, потому что полагается на BIOS.

Решение: храните /boot на жёстком диске.

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

А если поиграться в консоли граба с модулями типа usbms.mod, usb.mod и usbtest.mod? Я хз, что они делают, но точно не форматируют винт, так что вреда попытки не принесут.

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

Идея была в том, чтобы хранить всю ОС на SD 16GB. Именно не на флешке, которая выпирает (маленькой у меня нет), а на компактной карте, которая полностью уходит в корпус ноутбука. :-(

anonymous
()
Ответ на: комментарий от delete83

Для начала мне придется покурить маны, т.к. я тоже понятия не имею, что делают эти модули. :-)

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

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

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

То есть мне нужно поставиться, обновить ядро, после чего поправить /etc/fstab? И что лучше, на ваш взгляд: монтировать c параметром ro или noauto?

anonymous
()

У некоторых контроллеров вообще есть такая проблемка, что невозможно загрузиться и прочие радости. Предлагаю их заносить в черный список и не использовать для этих целей :)

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

Я бы начал с монтирования в rw и посмотрел бы, как при этом с дисковой активностью. Может быть, никаких строгих мер и не нужно.

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

FAIL

Или сразу появляется сообщение и на нем все стопорится:

error: no such device: здесь_UUID_жесткого диска, на котором /boot(!)
error: no such disk

или после этого сообщения появляется меню GRUB, а после:

BusyBox v.1.17.1 built-in shell (ash)
Enter 'help' for a list of built-in commands
(initramfs)

:-(

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

grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### 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/sdc,msdos1)'
search --no-floppy --fs-uuid --set=root b74018b0-b7e7-4471-903f-2488277f2301
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/sda,msdos1)'
search --no-floppy --fs-uuid --set=root b0b3d8b9-7aa0-41cc-8886-1e0634469658
set locale_dir=($root)/grub/locale
set lang=ru_UA
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/sda,msdos1)'
	search --no-floppy --fs-uuid --set=root b0b3d8b9-7aa0-41cc-8886-1e0634469658
	linux	/vmlinuz-2.6.38-8-generic root=/dev/sdc1 ro   quiet splash vt.handoff=7
	initrd	/initrd.img-2.6.38-8-generic
}
menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	set gfxpayload=$linux_gfx_mode
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos1)'
	search --no-floppy --fs-uuid --set=root b0b3d8b9-7aa0-41cc-8886-1e0634469658
	echo	'Loading Linux 2.6.38-8-generic ...'
	linux	/vmlinuz-2.6.38-8-generic root=/dev/sdc1 ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-2.6.38-8-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos1)'
	search --no-floppy --fs-uuid --set=root b0b3d8b9-7aa0-41cc-8886-1e0634469658
	linux16	/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos1)'
	search --no-floppy --fs-uuid --set=root b0b3d8b9-7aa0-41cc-8886-1e0634469658
	linux16	/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
if [ "x${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# 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.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
AnimusPEXUS
() автор топика
Ответ на: grub.cfg от AnimusPEXUS

set root='(/dev/sdc,msdos1)'
search --no-floppy --fs-uuid --set=root b74018b0-b7e7-4471-903f-2488277f2301
if loadfont /usr/share/grub/unicode.pf2 ; then

Попробуйте отключить (chmod -x) /etc/grub.d/00_header.

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

Ну и root=/dev/sdc1 - это весьма неудачно. Здесь автоматика ошиблась и должна была указать UUID.

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

Заказал LaCie MosКeyto 8GB, мучиться с кардридером дальше нет ни сил, ни желания. Спасибо вам за помощь.

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