fsck ramdisk туплю
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2014-11-27 18:50:31
fsck ramdisk туплю
Многоуважаемый ALL
Есть такая извратная, на первый взгляд, задача:
1. При загрузке загнать все минимально в ОЗУ, (по-идее ядро+fsck)
2. Проверить fsck -fy /dev/ada0p2
3. Загрузиться штатно с /dev/ada0p2
Как подступиться?
За полное решение, расписанное от и до
echo "+" >> CARMA
P.S. FreeBSD 10.0-RELEASE-p12
Есть такая извратная, на первый взгляд, задача:
1. При загрузке загнать все минимально в ОЗУ, (по-идее ядро+fsck)
2. Проверить fsck -fy /dev/ada0p2
3. Загрузиться штатно с /dev/ada0p2
Как подступиться?
За полное решение, расписанное от и до
echo "+" >> CARMA
P.S. FreeBSD 10.0-RELEASE-p12
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- проходил мимо
Re: fsck ramdisk туплю
а где по Вашему ядро?stslam писал(а):Многоуважаемый ALL
Есть такая извратная, на первый взгляд, задача:
1. При загрузке загнать все минимально в ОЗУ, (по-идее ядро+fsck)
кто вызывает fsck?2. Проверить fsck -fy /dev/ada0p2
3. Загрузиться штатно с /dev/ada0p2
изучить процесс загрузки OS FreeBSDКак подступиться?
За полное решение, расписанное от и до
echo "+" >> CARMA
P.S. FreeBSD 10.0-RELEASE-p12
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2014-11-27 18:50:31
Re: fsck ramdisk туплю
По-моему ядро берется из корневой ф/с
root@CMISRV2:/etc # df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ada0p2 147252892 4840492 130632172 4% /
Кто вызывает fsck?
Я так думаю - загрузочный скрипт, которого еще как бы нет.
Процесс загрузки я изучил, возможно что недостаточно для того, чтобы реализовать описанную задачу.
Поизучаю еще.
root@CMISRV2:/etc # df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ada0p2 147252892 4840492 130632172 4% /
Кто вызывает fsck?
Я так думаю - загрузочный скрипт, которого еще как бы нет.
Процесс загрузки я изучил, возможно что недостаточно для того, чтобы реализовать описанную задачу.
Поизучаю еще.
-
- проходил мимо
Re: fsck ramdisk туплю
да, оно находится на корневой FS, загружает его loader в RAMstslam писал(а):По-моему ядро берется из корневой ф/с
root@CMISRV2:/etc # df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ada0p2 147252892 4840492 130632172 4% /
первый процесс во всех Unix'ах - initКто вызывает fsck?
Я так думаю - загрузочный скрипт, которого еще как бы нет.
правильный подход, есть пара старых ссылок где достаточно глюбоко расписывается bootstrap FreeBSD, ноПроцесс загрузки я изучил, возможно что недостаточно для того, чтобы реализовать описанную задачу.
Поизучаю еще.
с тех пор, процесс изменился, хотя тонкости только по sources.
Sorry, ссылки с ходу не нашел, где-то записаны...
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2014-11-27 18:50:31
Re: fsck ramdisk туплю
Поясню, почему вообще возник данный вопрос.
fsck, на мой взгляд - отрабатывает не совсем корректно, почему - еще не понял.
в /etc/rc.conf переопределил дефолтные значения, задав:
fsck_y_enable="YES"
fsck_y_flags="-f"
backgrounfd_fsck="NO"
Эффект нулевой, - в том смысле, что запуск fsck (при автозагрузке под малтиюзером) не происходит (это было бы хорошо заметно по задержке, т.к. раздел ada0p2 не особо маленький)
Пришел к выводу, что запуск где-то там "внутре" происходит при установленном флаге в суперблоке файловой.
Подтверждения этому, равно как и опровержения - не нашел.
Второй момент, который не "понравился" (файловая система у ada0p2 - ufs) - нестабильный показ ошибок из fsck, - при запуске под multi user (а это же только проверка, писать запрещено) - перечень ошибок плавающий. Три раза запустил - три разных списка получил.
Под синглом, впрочем - аналогично. Если не "лечить" и без журнала - тоже плавающий список.
Может fsck глюкавый? но, скорее всего - есть какой-то неочевидный мне нюанс.
HDD не очень стар и виктория с mhdd ошибок не находят.
Я предполагаю, что fsck не умеет нормально проверять и лечить партицию, на которой он находится.
Поскольку мучимая мною система выполняет позорно-почетную роль NAT + ipfw (ну, в перспективе еще чем-нибудь нагружу) на несколько десятков машин - особо курочить ее тяжеловато, настраиваю из локалки через Putty.
Вот и возникла идея - 3хэтажной загрузки -
сначала все необходимое засовывается в рамддиск, затем загрузка с рамдиска - проверка жесткого, затем мягкая перезагрузка - с жесткого.
Пусть долго, но зато железобетонно.
Я понимаю, что это удаление гланд через седалище, но более легкий путь не придумывается.
fsck, на мой взгляд - отрабатывает не совсем корректно, почему - еще не понял.
в /etc/rc.conf переопределил дефолтные значения, задав:
fsck_y_enable="YES"
fsck_y_flags="-f"
backgrounfd_fsck="NO"
Эффект нулевой, - в том смысле, что запуск fsck (при автозагрузке под малтиюзером) не происходит (это было бы хорошо заметно по задержке, т.к. раздел ada0p2 не особо маленький)
Пришел к выводу, что запуск где-то там "внутре" происходит при установленном флаге в суперблоке файловой.
Подтверждения этому, равно как и опровержения - не нашел.
Второй момент, который не "понравился" (файловая система у ada0p2 - ufs) - нестабильный показ ошибок из fsck, - при запуске под multi user (а это же только проверка, писать запрещено) - перечень ошибок плавающий. Три раза запустил - три разных списка получил.
Под синглом, впрочем - аналогично. Если не "лечить" и без журнала - тоже плавающий список.
Может fsck глюкавый? но, скорее всего - есть какой-то неочевидный мне нюанс.
HDD не очень стар и виктория с mhdd ошибок не находят.
Я предполагаю, что fsck не умеет нормально проверять и лечить партицию, на которой он находится.
Поскольку мучимая мною система выполняет позорно-почетную роль NAT + ipfw (ну, в перспективе еще чем-нибудь нагружу) на несколько десятков машин - особо курочить ее тяжеловато, настраиваю из локалки через Putty.
Вот и возникла идея - 3хэтажной загрузки -
сначала все необходимое засовывается в рамддиск, затем загрузка с рамдиска - проверка жесткого, затем мягкая перезагрузка - с жесткого.
Пусть долго, но зато железобетонно.
Я понимаю, что это удаление гланд через седалище, но более легкий путь не придумывается.
-
- проходил мимо
Re: fsck ramdisk туплю
Ну что Вы...stslam писал(а):Поясню, почему вообще возник данный вопрос.
fsck, на мой взгляд - отрабатывает не совсем корректно, почему - еще не понял.
в /etc/rc.conf переопределил дефолтные значения, задав:
fsck_y_enable="YES"
fsck_y_flags="-f"
backgrounfd_fsck="NO"
Эффект нулевой, - в том смысле, что запуск fsck (при автозагрузке под малтиюзером) не происходит (это было бы хорошо заметно по задержке, т.к. раздел ada0p2 не особо маленький)
Пришел к выводу, что запуск где-то там "внутре" происходит при установленном флаге в суперблоке файловой.
Подтверждения этому, равно как и опровержения - не нашел.
fsck запускается на несмонтированные FS и запускается из первого процесса в системе - из init'а,что запуск fsck (при автозагрузке под малтиюзером)
проверяется clean-bit и запускается fsck, в multuser mode - fsck НЕ ЗАПУСКАЮТ, либо в урезанном
варианте man fsck, либо на несмонтированные FS или смонтированные RO (read-only).
Вы либо не поняли весь процесс bootstrap/загрузки xBSD, либо изучили его поверхностно.
Работа fsck в background режиме - вещь неплохая, но сомнительная и малоэффективная.
fsck_y_enable="YES" - принудительно запускать fsck с -y при загрузке, ибо если fsck завершилась
неудачно, init должен остановить загрузку в single-user mode для интерактивного принятия решений.
fsck_y_flags="-f" - прнудительно запускать fsck, даже если FS помечена как clean), используют в
особых ситуациях, например, если используется UFS+SUJ - до версии 9.2 или 9.3.
В чем сокровенный смысл журналируемых FS в двух словах: надежность и быстрое восстановление благодаря
журналу, поднять FS на базе последнего нормального состояния, за счет этого fsck очень быстро
отрабатывает проверку, что важно для FS огромного размера.
Но для журналируемых FS в FreeBSD очень желательно наличие UPS, в FreeBSD возможно использование:
- журналирование на уровне GEOM - использование gjournal (очень медленная работа FS)
- UFS+SUJ, реализацию нельзя назвать надежной и стабильной, хотя к выходу 9.3 и 10.1 исправлено очень
много ошибок и можно не использовать fsck_y_flags="-f"
- ZFS - могучий мышонок, тьфу - монстр, чего только не мОГет, но требует знаний и ресурсов RAM
Так что, боюсь у Вас в конституции непорядок.