FreeBSD: при установке на внешний жесткий диск при загрузке не находит корневую файловую систему

Установил FreeBSD 8.1 на внешний жесткий диск (обычный жесткий диск от ноутбука в китайской usb коробке). Во время загрузки загрузчик (расположен на том же диске) находит ядро, загружает его, но во время монтирования корневой файловой системы ядро выдает ошибку, что дескать устройство /dev/da0s3a не найдено.

Если немного подождать и ввести команду ? в списке устройств этот диск появится. Проблема в том, что определение USB устройств происходит с задержкой. Если после паузы ввести usb:/dev/da0s3a — система загрузится нормально. Это известная проблема, когда-нибудь будет патч, но пока придется внести небольшие изменения в ядро. Помог вот этот мануал.

Все необходимые исходники ядра должны быть установлены. Копируем образец конфигурации в новый файл. Кто знает, возможно мы захотим внести еще какие-либо изменения в конфигурацию:

cd /usr/src/sys/i386/conf
cp GENERIC MTAALAMU-KERNEL


Редактируем файл /usr/src/sys/kern/vfs_mount.c. Нужно добавить строку:

pause("usbhack", hz * 10);


В функции vfs_mountroot.

/*
 * Find and mount the root filesystem
 */
void
vfs_mountroot(void)
{
	char *cp, *cpt, *options, *tmpdev;
	int error, i, asked = 0;

	options = NULL;

	pause("usbhack", hz * 10);

	root_mount_prepare();


Собираем ядро:

cd /usr/src/
make buildkernel MTAALAMU-KERNEL


На всякий случай сохраняем директорию /boot/kernel.

Устанавливаем новое ядро:

make installkernel MTAALAMU-KERNEL
  • +6
  • 20 ноября 2010, 09:40
  • Sergei_T

Комментарии (6)

RSS свернуть / развернуть
+
0
Ну ты ЯДерный спец !!!
avatar

Markony

  • 23 ноября 2010, 11:10
+
0
Да не особо так то )
avatar

Sergei_T

  • 23 ноября 2010, 12:24
+
0
А чему равно значение hz?
avatar

yababay

  • 23 ноября 2010, 13:17
+
0
Частота таймера ядра
avatar

Sergei_T

  • 23 ноября 2010, 13:38
+
+1
«Думали физики, думали как назвать единицу измерения частоты, да так ничего и не придумали. Оставили Hz».
avatar

yababay

  • 23 ноября 2010, 15:07
+
0
Так точно
avatar

Sergei_T

  • 23 ноября 2010, 15:48

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.