nixp.ru v3.0

25 мая 2017,
четверг,
09:53:27 MSK

DevOps с компанией «Флант»
grisha написал 29 февраля 2008 года в 14:07 (538 просмотров) Ведет себя как мужчина; открыл 34 темы в форуме, оставил 202 комментария на сайте.

Поставил второй диск. Теперь у меня сата и пата. Решил на сата поставить генту. Скачал минимальный лайв сд, загрузился, разметил fdisk, получилось так

лэйбл диска — sun

sda1 id 83 — сюда хочу установить

sda2 id 82 — подкачка

sda3 id 5 -весь диск (по умолчанию)

Команда mount /dev/sda1 /mnt/gentoo говорит, что специальное устройство sda1 не существует. Почему не существует, если fdisk выше его показывает. А еще когда пытаюсь создать файловую систему mkreiserfs /dev/sda1, говорят что «stat /dev/sda1 faild»

нужна помощь

sarel

Что показывает

cat /proc/partitions

Фдиск читает таблицу напрямую с блочного устройства. А ядро могло еще не увидеть что ты ее поменял.

Anarchist

Полагаю, следует начать с RTFM по разбиению дисков и fdisk в частности, после чего представить вывод

fdisk -l /dev/sda
pol

http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?full=1

распечатываем и читаем ВНИМАТЕЛЬНО

grisha
Anarchist
Полагаю, следует начать с RTFM по разбиению дисков и fdisk в частности, после чего представить вывод

fdisk -l /dev/sda

по-моему fdisk программа простая, даже не знаю чего там читать-нажал m и вроде все понятно. Не получается примонтировать.

fdisk -l

Disk /dev/hda: 80,0 GB

255 heads, 63 sectors/track, 9729 cyl

Device Boot Start End Blocks Id System

/dev/hda1 * 1 3251 26113626 7 HPFS/NTFS

/dev/hda2 3252 9729 52034535 f W95 Ext’d (LBA)

/dev/hda5 3252 3888 5116671 7 HPFS/NTFS

/dev/hda6 3889 7275 27206046 7 HPFS/NTFS

/dev/hda7 8559 9403 6787431 83 Linux

/dev/hda8 9404 9729 2718563+ 82 Linux swap / Solaris

/dev/hda9 7276 8558 10305666 83 Linux

Disk /dev/sda (Sun disklabel): 255 heads, 63 sectors, 30399 cyl

Device Flag Start End Blocks Id System

/dev/sda1 0 3647 29294527+ 83 Linux native

/dev/sda2 u 3647 3890 1951897+ 82 Linux swap

/dev/sda3 0 3099 244179967+ 5 Whole disk

cat /proc/partitions

major minor #blocks name

7 0 44592 loop0

3 0 78150744 hda

3 1 26113626 hda1

3 2 1 hda2

3 5 5116671 hda5

3 6 27206046 hda6

3 7 6787431 hda7

3 8 2618563 hda8

3 9 10305666 hda9

8 0 244198584 sda

metal

По-моему, все очевидно.

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

Во-вторых, у тебя просто не существует устройств sda*, смотри ls /dev | grep sda

Как сделать чтобы они появились, тебе уже дали ссылку.

metal

По первому пункту не верно написал, для sun disk label все нормально.

rgo

дык может ядро не поддерживает sun disklabel. надо ядро пересобрать.

grisha

Продолжаю читать RTFM 8-). Поделил диск, установил генту (пока консольный, надо же когда нибудь учиться). Но все таки непонятно почему поделить с таблицой разделов DOS (o) получилось, а с меткой Sun (s) нет. А ядро можно пересобрать, работая с лайв дистрибутива? Он же вроде как в памяти загружен, это возможно?

metal

Поищи доку, я находил гентушную, там как раз устанавливали на Sun, может ее содержание прояснит дело.

rgo
grisha
А ядро можно пересобрать, работая с лайв дистрибутива? Он же вроде как в памяти загружен, это возможно?

Возможно всё. Другое дело, что определённые проблемы на пути встанут… Тебе ведь потом с этого ядра ещё грузиться придётся. Я бы сделал так. Я бы начал установку на какую-нибудь-там флешку. Поставил бы туда ровно столько, чтобы в это можно было chroot’нуться и собрать ядро. Собственно я бы туда chroot, собрал бы ядро, и на эту же флешку поставил. Потом в mbr флешки поставил бы grub, и грузанулся с флешки. Разбил бы диски, собрал бы партиции mount’ом, распаковал на них stage3. Потом поставил бы собранное ядро с grub’ом уже на диск, и ребутнулся бы в полученную систему. /* а груб sun-disklabel понимает? */

По-моему, самый простой способ. Системы на livecd отличаются тем, что им довольно-таки сложно ядро подменить. Почему-то создатели livecd считают, что обязательно использовать isolinux, в качестве загрузчика. Возможности grub для livecd, по-моему, гораздо более актуальны.

grisha

Хрен знает зачем удалил поставленный генту. Пошел на второй заход… sda1 загрузочный, sda2 подкачка, sda3 корневой.(2 жестких диска sda и hda) В grub.conf пишу root (hd0,0)

kernel /boot/(копия скомпилированного ядра) root=/dev/sda3

Моя проблема:

при загрузке на определенном этапе VFS: говорит, что нельзя открыть устройство sda3, поменяйте загрузочную опцию «root=». С какой стати мне ее менять, скажите и на что?

Anarchist

Похоже на загрузку с помощью initrd.

Про груб не скажу, если согласишься откатиться на lilo — процитирую когфиг.

grisha

Поставил лилу-то же самое. Конфиг такой

boot=/dev/sda

prompt

timeout=300

image=/boot/16-04-2008

label=gentoo

append=«real_root=/dev/sda1»

root=/dev/ram0 (не понял что значит ram0, я бы поставил указание на корневой раздел там где образ ядра у меня это sda3, но оставил так как в инструкции)

Сообщени при загрузке:

нельзя открыть загрузочное устройство «100» поменяйте загрузочную опцию root

metal

http://www.gentoo.ru/?q=node/10098

grisha

Судя по ссылке, все советы форумов сводятся к конфигу ядра. Ну, хорошо, все сделал как говорят, именно:

  • Virtual memory file system support


  • linux domain sockets


  • packet socket

[ ]ATA/ATAPI/MFM/RLL support

В результате — то же самое:

нельзя открыть загрузочное устройство sda3, измените загрузочный параметр «root=», нельзя примонтировать корневую фс на неизвестном блоке(0 0)

зы:

читаю в одно толстой книжке линукс в разделе компиляция ядра:

«если в вашей системе установлен SCSI-контроллер и вы сделали SCSI драйвер модульным, необходимо создать новый файл initrd». Соответственно в конфиге загрузчика указывается ссылка на образ initrd. В ядре у меня поддержка SCSI device есть:

  • legacy /proc/scsi support


  • SCSI low-level drivers

Больше о scsi в ядре не указывал.

Что делать? :-)

Anarchist

На моей памяти это не первый косяк с 2.6.24.

Лично мне переезжать на 2.6.23 было в лом и я просто откатился на 2.6.22.

grisha

А ведь я об этом где то уже читал:

рэбята, не надо сразу ставить новое ядро, послушайте, почитайте, подождите первых комментариев. 2 часа его качал с яндекса. Ну ладно приму как совет и поставлю 22.6.23 (c ним все грузилось раньше и работало). Хотя еще одно но. А может пропатчить новое? Щас точно не помню, но помоему новое ядро скачалось с заплаткой :-) В наложении заплат я не очень разбираюсь (никогда не патчил), но думаю так что уж если ядро новое то по функциональности оно как минимум не должно уступать старому (патчи же убирают уязвимости, добавляют функций или исправляют ошибки). Тогда нафига патчить? Разъясните напоследок.

metal

Столь сумбурно про заплатки написал, что я не понял что ты хотел спросить.

В умной книжки правильно написано и все проблемы у тебя в отсутствии нужных модулей в ядре или initrd. Не плохо бы было прочитать по этой теме как это работает, тогда бы понял что к чему. Если все включил в ядро, то вообще положи на initrd.

Насчет low level scsi, если это все что у тебя включено, то неудивительно что не работает. Сделай на рабочем ядре gzip -dc /proc/config.gz | grep SCSI и сравни, конечно кое-что там лишнее и аналогично по ATA. Подозреваю что у тебя sda уплывает на sdb в новом ядре.

Как раз собираюсь заняться 2.6.25, а то последний багфикс 2.6.24 я так и не смог собрать, в связи с странными проблемами.

grisha

Короче так. После ковыряний в новом ядре проблема по-прежднему не решилась. Откатившись к ядру за номером 2.6.23.9 загрузка прошла как по маслу. Умолчальный конфиг ядра вобще не трогал. Вот такой ядрен-батон. Комментарии? Анархист прав, что косяк в ядре?

metal

Умолчальный ты зря не трогал, по-умолчанию в нем может быть что угодно.

Пробывал взять config из /proc/config.gz и сделать make oldconfig?

Новое ядро — это 2.6.25 или 2.6.24? Вчера собрал 2.6.25 без каких-либо проблем.

При загрузке ядро пишет какие устройства оно находит, интересуют винты, находит оба? и под какими именами? Для моего ядра это выглядит примерно так:

sd 0:0:0:0: [sda] 156301488 512-byte hardware sectors (80026 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 156301488 512-byte hardware sectors (80026 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3 < sda5 sda6 sda7 sda8 > sda4
sd 0:0:0:0: [sda] Attached SCSI disk
grisha

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

Новое ядро было 2.6.24. (и еще последняя цифра -r4 кажется, кстати в его конфиге опцию SCSI deice support нельзя было изменить — она была закомментирована навечно таким символом -*-, интересно почему так категорично — в старом был выбор). Я не стал оставлять новое — перекрыл его старым и пожалуй пока останусь на нем (разбирусь немного с текущими настройками системы, а потом снова попробую обновить ядро)

metal

Для ядра практически невозможно подобрать разумный конфиг по-умолчанию, уж слишком для разных целей оно может использоваться, поэтому по-умолчанию — практически не рабочий. В дистрибутивных ядрах включено все что возможно модулями, что нельзя сделать модульным, не включается только по веским причинам. Это позволяет добиться работы на любом поддерживаемом железе. Почти все опции имеют описание, если такого нет, то скорее всего ее не следует включать, она только появилась и на работоспособность в целом повлиять не может. Бывает что оно не очень понятно, но если совсем не понятно о чем, то тебе это не нужно на 99%. Всегда можно отыскать более подробное описание для опции в интернете.

http://www.linuxcenter.ru/lib/articles/system/kernel26_install.phtml

Дока устарела и вообще ее полезность относительно, не стоит принимать то что в ней написандо на 100%. К сожалению в ней нет описания причин для включения или не включения конкретных опций.

2.6.24-r4? Это релиз-кандидат, тебе вообще не следует пытаться его собирать как работающее ядро. Как раз оно запросто может содержать ошибки.