Diskriptor
|
|
« : 06-02-2010 16:38 » |
|
Всем привет, возникла проблема, при загрузки нового ядра выдает ошибку: mount: mounting /dev/sda3/ on /mnt failid: No such device ERROR: No /sbin/init/ found on rootdev (or not mounted). Trouble ahead. You can try to fix it. Tupe 'exit' when things are done. /bin/sh: can't access tty; job control turned off /#fdisk –lDisk /dev/sda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x90909090 Device Boot Start End Blocks Id System /dev/sda1 * 1 5099 40957686 7 HPFS/NTFS /dev/sda2 5100 10447 42957810 f W95 Ext'd (LBA) /dev/sda3 * 10448 14593 33302745 83 Linux /dev/sda5 5100 10198 40957686 7 HPFS/NTFS /dev/sda6 10199 10447 2000061 82 Linux swap fstab/dev/sda6 swap swap defaults 0 0 /dev/sda3 / ext4 defaults 1 1 #/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 proc /proc proc defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0
lilo.conf#Linux bootable partition config begins image = /boot/vmlinuz root = /dev/sda3 label = Linux read-only # Linux bootable partition config ends image = /boot/bzImage-my root = /dev/sda3 initrd = /boot/initrd.gz label = Linux-my
Про initrd и mkinitrd знаю читал README.initrd я собирал: mkinitrd -c -o initrd.img -k 2.6.29.6 -m ext4 -f /dev/sda3, mkinitrd -c -o initrd.gz -k 2.6.29.6-smp -m ext4 -f /dev/sda3O.S. Slackware 13,0Ядро по умолчанию грузится нормально, а вот новое которое я собрал, нет. Ничего не помогло, обшарим интернет, ни чего вразумительного не нашёл, ест много тем по этой ошибки, но так описывается ошибка, но не написано как ее решит, подскажите если знаете как ее решит? P.S. Прошу прощения за внешний вид fstab почему то не получилось колонки подогнать.
|
|
« Последнее редактирование: 06-02-2010 16:39 от Diskriptor »
|
Записан
|
Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
|
|
|
Serg79
|
|
« Ответ #1 : 06-02-2010 17:05 » |
|
Попробуй просто "mkinitrd -c -k 2.6.29.6 -m ext4". После распакуй и посмотри как initrd создался и все ли там есть для монтирования корневого каталога. В частности, присутствуют ли драйвера для контролера жесткого диска и драйвера для файловой системы.
|
|
|
Записан
|
|
|
|
Diskriptor
|
|
« Ответ #2 : 09-02-2010 08:02 » |
|
Выполнил команду mkinitrd -c -k 2.6.29.6 -m ext4, получил папку initrd-tree, в этой папке я обратил внимания на следующие папки initrd-tree/dev среди прочих там лежат файлы sda1...sda6 и tty1...tty4 я так понимаю это драйвера для жёсткого диска, потом обратил внимания на папку initrd-tree/lib/modules/2.6.29.6/kernrl/fs тут лежит папка ext4, я так понимаю что это драйвера для файловой системы. Получается что все на месте, может в fstab надо раздел sda3 с каким то особым образом прописать, побывал прописать через UUID не помогло, в чем еще могут быт проблемы?
|
|
|
Записан
|
Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #3 : 09-02-2010 12:35 » |
|
Нет, в dev дежат файлы устройств - фишка такая униксовая, а драйвера лежат как раз в подпапках по пути lib/modules/<VERSION>/. Например, для устройств драйвера обычно располагают в kernel/drivers/ fstab - файл, описывающий точки монтирования. Его использую загрузочные скрипты. Монтируемое устройство может быть указано: * Путем к файлу устройства (/dev/sda1) * Именем раздела (LABEL=....) * UUID раздела (UUID=.....) Просмотреть LABEL и UUID для ext2|ext3|ext4 раздела /dev/sda1: tune2fs -l /dev/sda1
|
|
« Последнее редактирование: 09-02-2010 12:40 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Serg79
|
|
« Ответ #4 : 09-02-2010 18:20 » |
|
Diskriptor, зачем тебе вообще потребовалось свое ядро собирать. Если слабо в этом разбираешься, ставь из репозитария уже уже собранные ядра.
|
|
|
Записан
|
|
|
|
Diskriptor
|
|
« Ответ #5 : 09-02-2010 18:32 » |
|
Нет, в dev дежат файлы устройств я знаю что это файл устройства думал что драйвер зразу зашивается в него, получается что драйверов на жёсткий нет, подскажите куда капать как узнать какой именно драйвер нужен для моего жёсткого и где его взят? fstab - файл, описывающий точки монтирования. Его использую загрузочные скрипты. Монтируемое устройство может быть указано: * Путем к файлу устройства (/dev/sda1) * UUID раздела (UUID=.....) про это знал правда UUID смотрел командой ls -lF /dev/disk/by-uuid/
|
|
|
Записан
|
Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
|
|
|
Serg79
|
|
« Ответ #6 : 09-02-2010 18:40 » |
|
Diskriptor, если в общих словах то определить нужный драйвер можно так: 1 - через 'lspci' определяешь вендор IDE контроллера. 2 - по этому вендору, в файле '/lib/modules/<VERSION>/modules.pcimap' определяешь модуль отвечающий за работу с данным IDE контроллером.
|
|
|
Записан
|
|
|
|
Diskriptor
|
|
« Ответ #7 : 09-02-2010 18:47 » |
|
Serg79, зачем тебе вообще потребовалось свое ядро собирать. Если слабо в этом разбираешься, ставь из репозитария уже уже собранные ядра. У меня и так нормально работает нормально ядро по умолчания, но поскольку я не работаю по специальности то надо самому моделировать ситуации и разберутся с ними зарастания вот я себе и поставил цел собрат второе ядро, кроме того так освоения Linux легче.
|
|
|
Записан
|
Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #8 : 10-02-2010 06:42 » |
|
Diskriptor, с текущими знаниями тебе рановато сборкой ядра заниматься. Ведь мало собрать - нужно еще понимать, что и как конфигурить перед компиляцией и, что не менее важно, как полученное ядро впишется в окружение.
Если ты собирал сам, то должен знать такую вещь, что ядро состоит из главного модуля (его обычно и называют ядром) и загружаемых модулей. Конфигурацией можно указать для драйвера: 1. Не собираться. 2. Собраться как модуль. 3. Собраться в составе ядра. Драйвер, включенный в состав ядра выгрузить нельзя, но и манипуляций с загрузкой он не требует.
Ядра в дистрибутивах делают универсальными и потому там драйвера выделяют в модули.
И еще важно знать, что ядра на kernel.org и ядра в дистрибутивах могут серьезно отличаться, т.к. в последних они могут быть пропатченными. Разные дистрибутивы придерживаются разной политики. Например, дистрибутивы одного производителя - RedHat: Fedore и EnterpriseLinux. В первом - номера версий меняются часто, а в промедутках их патчат. Во втором - только патчат, а меняют версию только при переходе на другой мажорный номер дистрибутива.
Когда-то я придерживался политики самосборных монолитных ядер, но позже понял, что лучше пользоваться ядрами из дистрибутива, т.к. они вписаны в окружение.
|
|
« Последнее редактирование: 10-02-2010 06:56 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Diskriptor
|
|
« Ответ #9 : 13-02-2010 22:05 » |
|
с текущими знаниями тебе рановато сборкой ядра заниматься. я это уже понял, но хотел бы довести начитое дело до конца, до минимальной работоспособности. Если ты собирал сам, то должен знать такую вещь, что ядро состоит из главного модуля (его обычно и называют ядром) и загружаемых модулей. Конфигурацией можно указать для драйвера: 1. Не собираться. 2. Собраться как модуль. 3. Собраться в составе ядра. Драйвер, включенный в состав ядра выгрузить нельзя, но и манипуляций с загрузкой он не требует. Про это знаю я использовал .config по умолчанию, только включил трассировку пакетов ip_conntrak в ядре которое я собрал modules.pcimap пустой а в ядре по умолчанию через lspci узнал информацию о драйвере ( Finch подсказал механизм поиска ) pata_jmicron 0x0000197b 0xffffffff 0xffffffff 0xffffffff 0x00010100 0x00ffff00 0x0
как по этому набору сведений найти нужный драйвер?
|
|
|
Записан
|
Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
|
|
|
Diskriptor
|
|
« Ответ #10 : 14-02-2010 17:16 » |
|
Нужные драйвера нужно включат на этапе компиляции путём конфигурирования файла .config , но знаний пока не хватает. Подскажите книгу по конфигурирования и компеляции ядра, желательно по новей что бы ее можно было купит в печатном виде.
|
|
|
Записан
|
Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #11 : 14-02-2010 22:00 » |
|
Diskriptor, боюсь, что данный вопрос можно изучить только на практике. Я о компИляции. Для общего образования посмотри Вики и далее по ссылкам из нее: http://ru.wikipedia.org/wiki/Linux_%28%D1%8F%D0%B4%D1%80%D0%BE%29
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|