Информация
На главную Главная

Мой t-cards.ru
Войти Войти
Зарегистрироваться Регистрация

Разное
Форум Форум
Вернуться Форумы на t-cards.ru> Hard"n"Soft
Логин
Пароль
Регистрация Участники Поиск >> FAQ


Сообщения в теме: "gentooth linux на вашем USB-винте..."
01.12.2005 10:45
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюgentooth linux на вашем USB-винте

01.12.2005 10:56
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюgentooth linux на вашем USB-винте

Вообщем надыбал я дистриб gentooth linux http://forum.gentoo.org.ua/index.php?showtopic=58&st=0
отличный дистрибутив, отлично локализован и может работать прямо с CD-ROM.
Я же для своих нужд решил его установить на свой USB-HDD
диск я разметил следующим образом
sda1 - 32Mb - FAT16 - active (можно сделать программой cfdisk)
sda2 - ext partition
sda3 - 4Gb - ReiserFS (основной раздел линукс)
sda4 - 1Bg - Linux SWAP
sda5 - 95Gb - FAT32 (для хранения переносимой информации)
наличие фат16 раздела крайне желательно, так как я использовал syslinux загрузчик (ставиться по emerge), который загружает ядро с FAT16 раздела и только, syslinux был выбрал из за того что этот загрузчик работает через прерывание биос и ему как то по боку наличие SCSI на компьютере (grub со scsi у меня не загрузился)
Установка syslinux: после того как разделы созданы и отформатированы размонтируем sda1 и выполняем syslinux /dev/sda1
после чего монтируем его, помещаем в него файл ядра(vmlinuz) и файл initrd и создаем файл конфигурации syslinux.cfg (содержание будет в следующем постинге), всё линукс будет грузиться с любого компьютера поддерживающего загрузку с USB
01.12.2005 11:33
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюgentooth linux на вашем USB-винте

default gentoo
prompt 1
timeout 2

label gentoo
          KERNEL vmlinuz
          APPEND initrd=initrd root=/dev/ram0 ramdisk_size=16384 init=/linuxrc vga=791 mountall lang=ru mousedev=/dev/input/mice glx dri xmousetype=auto
01.12.2005 11:43
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюgentooth linux на вашем USB-винте

как видно из конфига я передаю параметры ядра через него
получается если где линуха не запуститься или запустится но не так как вы хотите, достаточно загрузиться в винду и поправить файл конфигурации поставив те параметры которые вам нужны
01.12.2005 11:45
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
По умолчаниюgentooth linux на вашем USB-винте

Да, видел я это чудо, очень суперски, самому понравилось!
Тока дайте мне USB-винт и я тоже себе поставлю.
Загрузчик в fat16 - очень сильная тема!!
25.03.2008 22:26
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
По умолчаниюgentooth linux на вашем USB-винте

Теперь я напишу про загрузку с usb.
Поимел usb-винт на 160 гигов, разбил на 3 части - 1 Гб своп, 10 Гб под линукс (reiserfs там сделал), остальное ntfs под хранение данных.

Решил не использовать initrd (геморрой лишний)
grub и так прекрасно может загружаться с usb, тока надо сделать вот что:

1. Включаем в ядре USB Mass Storage звездочкой, остальные модули (sata, ide и иже с ними) включаем модулями. Итого имеем, что если в комп больше не вставлено usb-накопителей, наш диск определится как /dev/sda (попытался копнуть еще глубже, но об этом ниже). Включаем таким же образом и SCSI в ядре.

2. В конфиг grub'а пишем что-то типа того

title Gentoo-2.6.24
root (hd0,1)
kernel /boot/bzImage root=/dev/sda2

Вроде бы все ок, но однако имеем ошибку Unable to mount root и kernel panic! А хитрость в том, что при загрузке ядро загружает модуль usb-storage и сразу же переходит к монтированию корня, хотя этот модуль еще не успел найти ни одного диска (такое происходит только с usb-накопителями). Поэтому надо ядру подсказать, что надо несколько секунд подождать, прежде чем монтировать корневой раздел. Пишем в конфиг grub следующее

title Gentoo-2.6.24
root (hd0,1)
kernel /boot/bzImage root=/dev/sda2 rootdelay=12

Я потестил, 12 сек вполне достаточно для того, чтоб драйвер просканил и нашел все диски.

Вдогонку:
1. Grub очень умен и поймет даже такое

root (,1)

2. У каждого блочного устройства (диска, раздела то бишь) есть уникальный идентификатор UUID. Посмотреть его можно командной

blkid

Так вот, в файл fstab можно вместо имен устройств (/dev/sda2 /dev/sda3) писать UUID=c98caccc-8785-4bd8-8918-08d8c68ac83e.

Попытался подсунуть такое в grub

title Gentoo-2.6.24
root (,1)
kernel /boot/bzImage root=UUID=c98caccc-8785-4bd8-8918-08d8c68ac83e rootdelay=12


однако это ничего, кроме kernel panic, не принесло, т.к. ядро на этапе загрузки не видит эти UUID'ы, они видны после отработки правил udev. Достичь этого можно юзая initrd, но я на это забил - диск у меня и так /dev/sda в любом случае.

3. Для записи на ntfs есть драйвер ntfs-3g, я сделал так - в ядре отключил нативную поддержку ntfs, собрал пакет ntfs3g (emerge ntfs3g, если у вас gentoo). Для него надо в ядре включить опцию Filesystem in Userspace, тк наз. FUSE.
монтировать типа так

mount -t ntfs-3g ...

Можно и создать в модулях alias с именем ntfs, чтоб раздел монтировался без указания файловой системы, но я не стал по этой теме заморачиваться.

Написал свой automounter, при старте ищет все доступные блочные девайсы и монтирует их в /mnt/.../
Для автомонтирования cdrom и съемных устройств при их подключении есть демон ivman, можно его поставить

emerge ivman

, у него хренова пропасть возможностей, может монтировать диск при вставке, флешку при вставке, выкидывать всякие окошки, типа как в винде. Но я его юзать не стал, мне пока не принципиально, достаточно примонтировать уже имеющиеся девайсы.

4. При переносе винта с одного комп на другой каждая сетевая карта запоминалась udev в файл /etc/udev/rules.d/70-persistent-net.rules, таким образом нумерация имен интерфейсов постоянно росла (eth0, eth1, eth2), т.к. в том файле хранится сопоставление всех когда-либо определявшихся в системе сетевых плат по mac-адресу и имени интерфейса ethX.
Очевидно, что при переносном варианте это неудобно, поэтому отключаем эту фичу по-жесткому - правим файл /etc/udev/rules.d/75-persistent-net-generator.rules - находим там строчку

GOTO="persistent_net_generator_end"

и прям в начало файла вставляем ее. Сетевухи отныне запоминаться не будут.
07.10.2008 19:18
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюgentooth linux на вашем USB-винте

Очень полезная фишка, не только для УСБ но и для загрузки например бездисковых станций, скоро на эту тему сделаю статью

4. При переносе винта с одного комп на другой каждая сетевая карта запоминалась udev в файл /etc/udev/rules.d/70-persistent-net.rules, таким образом нумерация имен интерфейсов постоянно росла (eth0, eth1, eth2), т.к. в том файле хранится сопоставление всех когда-либо определявшихся в системе сетевых плат по mac-адресу и имени интерфейса ethX.
Очевидно, что при переносном варианте это неудобно, поэтому отключаем эту фичу по-жесткому - правим файл /etc/udev/rules.d/75-persistent-net-generator.rules - находим там строчку

GOTO="persistent_net_generator_end"

и прям в начало файла вставляем ее. Сетевухи отныне запоминаться не будут.