LinuxForum.Fans
Тема

Debian на Compact Flash

Автор: ustas1983 14 сообщений 2761 просмотров
#385641

Всем доброго. Прошу помощи, совсем застрял. Может есть у кого опыт установки и подготовки compact flash под Дебу? Уже чего только не пробовал пишу глаза слипаются(. Подскажите по этому мануалу http://shop.nativepc.ru/content/65-nativepc-debian-squeeze-alix-compact-flash- нужно в точности поставить на С флеш систему под аликса. Но мне кажеться статья какая то левая есть ошибки хатя бы в tar -xzf netboot.tar.gz /mnt . Если кто что подскажет буду очень признателен. Вариант что в статье вооббще не дышит. Доходит по ком порту до загрузки карты и дальше стопится, после того как cделал grub-install в /mnt , появляеться при загрузке строчка grub unstall пробегает вниз в пустоту и все дальше никуда(

#385643

Должно быть:

text

tar -xzf netboot.tar.gz -C /mnt

Если на плате есть поддержка загрузки по сети, то вместо grub вы можете поднять tftp сервер с dhcp сервером и загрузить сетевой установщик по PXE.

Пишете такой конфиг:

text

default debian
prompt 0
console 0
serial 0 38400 0
label debian
kernel /debian-installer/i386/linux
append initrd=/debian-installer/i386/linux console=ttys0,38400n8
append 

В директорию, с которой tftp сервер отдаёт файлы, копируете директирию debian-installer

Либо можете за основу взять примеры из архива, лишь допишите в конфиги, что бы загрузчик и ядро осуществляли вывод на com port.

#385650
kostik87 написал:
Должно быть:
text

tar -xzf netboot.tar.gz -C /mnt

да это я понимаю, просто раз пишется пошаговое руководство, так должно быть все четко и по пунктам - по полочкам , а там походу как будто на скорую руку писалось и мне кажется даже на практике не проводилось испытаний.
По поводу PXE буду пробовать, но хотелось бы осилить загрузку именно с CF. Пока мне непонятно каким образом вообще происходят какие либо изменения при редактировании grub.cfg файла... По крайней мере по статье того нигде не указано, даже не написано что раздел нужно сделать загрузочным, более того там написано что просто нужно сконфигурировать файл командой grub-mkconfig -o, но ведь это же не устанавливает загрузочный бут сектор в раздел правильно? Покопавшись я понял что нужно использовать grub-install /бала/бала. Ну да он устанавливает туда бут, да он при включении устройства выводит на ком порт заугрзку груба, но дальше как будто ничего не происходит просто останавливается и все. Интуитивно понятно мне что он не может найти дальнейших инструкций по загрзке которые должны быть в вроде как груб.цфг. Но когда редактируешь его никаких изменений не происходит(.

#385654

Можете поставить на compact Flash syslinux и настроить его на вывод через com port, хотя это не обязательно, главное, что бы ядро осуществлядл вывод через com port. Формат конфигурационного файла у pxelinux и syslinux одинаков.

#385655
kostik87 написал:
Можете поставить на compact Flash syslinux и настроить его на вывод через com port, хотя это не обязательно, главное, что бы ядро осуществлядл вывод через com port. Формат конфигурационного файла у pxelinux и syslinux одинаков.

Подскажи, вот я подключил комп порт на него выводится как бы начальная инициализация устройства даже появляется надпись GRUB Loading .... и все дальше вниз уходит пустые 10 строк, это что значит? то есть до начала загрузки ядра система выводит на комп порт, а дальше нужно чтобы ядро подхватывало еще вывод я правильно понимаю?
Вот видос всего этого дела
http://megaswf.com/file/2672174

#385686

После grub loading должно отобразиться меню, а его нет. Если ты набрал приведённый в руководстве конфиг загрузчика, то там, как видишь стоит timeout 20 секунд.

Попробуй с syslinux.

#385854

Дело сдвинулось с мертвой точки, как мне показалось grub-installer у тупо нехватало места, так как по гайду размечал диск под 20 метров, и ему нехватало места чтобы сгенерировать полный список файлов в папке груб (хатя это мои предположения). В общем после того как создал раздел под 2 гига на CF и запустив grub installer получил вывод - Installation finished. No error reported. Далее проследовал в папку /mnt/boot/grub/ и там оказался гораздо более полный список файлов, такой же как и у меня в в системе. В общем после этого создав в этой же папке grub.cfg файл с теми данными что в гайде, я получил таки вывод на экран меню груба!
Вот видос если интересно:

http://megaswf.com/file/2672382

#385871

Собственно все отлично поставилось! Оказалось все проще некуда. Теперь вопрос еще один. Как я понял когда системы устанавливаются на флеш, то нужно определенным образом смонитровать разделы, то есть сделат их только в режиме чтения RO. Может кто нибудь ткнуть носом как правильно это делать? ) Скажем правильно ли я понимаю, что можно всю установленную систему сделать только в режиме чтения а раздел какой нить /var отдать на флешку под логи?

#385872
"ustas1983" написал:
сделат их только в режиме чтения

С чего бы? И как она при этом работать будет? Упрощаю вопрос: система установилась. Почему Вы считаете, что лучше разработчиков знаете, что нужно её разделам?

#385877
ustas1983 написал:
Собственно все отлично поставилось! ...

Поздравляю, но почему не стали использовать syslinux? Grub в данном случае избыточен.

ustas1983 написал:

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

В принципе, в этом есть резон, т.к. у флэш памяти всё же есть ограничение на число циклов перезаписи ячеек памяти. Но в этом случае нужно позаботиться о том, что бы система могла писать логи и временные файлы куда-либо. Для этого может послужить файловая система tmpfs. Вам нужно сделать, что бы для

text

/tmp
/var/log
/var/tmp

в /etc/fstab были созданы строки для монтирования на эти точни монтирования файловой системы tmpfs.

text

shm             /var/tmp/ tmpfs          defaults,size=128M 0 0
shm             /var/log/ tmpfs          defaults,size=64M 0 0
shm             /tmp/ tmpfs          defaults,size=128M 0 0

или

text

/dev/shm             /var/tmp/ tmpfs          defaults,size=128M 0 0
/dev/shm             /var/log/ tmpfs          defaults,size=64M 0 0
/dev/shm             /tmp/ tmpfs          defaults,size=128M 0 0

или

text

none             /var/tmp/ tmpfs          defaults,size=128M 0 0
none             /var/log/ tmpfs          defaults,size=64M 0 0
none             /tmp/ tmpfs          defaults,size=128M 0 0

Параметр size указывает предел выделения памяти под файловую систему tmpfs.



Так же т.к. это Debian остаётся вопрос об /var/cache/apt/archives, который нужно так же либо перенести на tmpfs либо за один раз поставить все пакеты, а потом в случае необходимости перемонтировать корень на запись.

Помимо кэша пакетного менеджена в /var так же располагаются прочие служебные данные, которые нужны в процессе работы сервисов и должны быть доступны на запись, поэтому либо выносите /var на отдельный раздел, который будете монтировать на запись, либо делайте символические ссылик с файлов и директорий в /var/*, к примеру, на /tmp, смонтированную в tmpfs, что бы сервисы могли писать туда данные.


Опять же встаёт вопрос об объёме оперативной памяти. При монтировании tmpfs данные, записанные на файловую систему фактически записываются в оперативную память. Память выделяется в зависимости от объёма записанных данных и освобождается после их удаления. В /var/tmp и /tmp пишется немного данных. А вот в /var/log записывается относительно большое количество логов. Поэтому вам нужно будет либо отключить логирование у сервисов, решайте сами, в зависимости от ваших задач, либо настроить систему ротации логов. С другой стороны, если объём оперативной памяти не маленький, скажем 512 Мб - 1 Гб и выше, лучше, конечно, 1 Гб, то можно особо не озадачиваться этим. К тому же, если система будет периодически перезагружаться, скажем раз в 2-3 дня, возможно неделю, то в зависимости от потребления памяти запущенными приложениями даже 512 Мб хватит с лихвой. Либо используйте параметр size, как в примере.

Так же можете посомтреть в сторону aufs, unionfs, эти файловые системы позволяют каскадно смонтировать две директории, при этом одна директория будет доступна только на чтение, а другая на запись.

Вот пример:

text

mkdir /tmp/log
mount none -t tmpfs /tmp/log -n
mount var_log -t aufs /var/log/ -o udba=reval,br:/tmp/log:/mnt/log

Здесь в /mnt/log находится содержимое будущего /var/log, но доступное, только на чтение, там структура директорий с правами доступа, пустые файлы, в /tmp/log смонтирована файловая система tmpfs, в директорию /tmp/log будут фактически писаться данные, которые система будет записывать в /var/log.

Так что думайте сами.

#385878
"kostik87" написал:
остаётся вопрос об /var/cache/apt/archives

А он-то вообще зачем, тем более на флэшке? Запретить сохранение и нет проблем.

"kostik87" написал:
что бы система могла писать логи и временные файлы куда-либо

А "/home" тоже останется readonly?

#385879
stranger написал:

А он-то вообще зачем, тем более на флэшке? Запретить сохранение и нет проблем.

В любом случае перед установкой deb пакета он скачивается и помещается в /var/cache/apt/archives.

stranger написал:

А "/home" тоже останется readonly?

Тут уж ТС решать будут у него пользователи кроме root или нет и нужна ли им будет домашняя директория в /home. В случае чего вынесет на отдельный раздел /home.

#385958
kostik87 написал:
Собственно все отлично поставилось! ...
Поздравляю, но почему не стали использовать syslinux? Grub в данном случае избыточен.

Система тестовая, поэтому экспериментирую.

Буду пробовать. Спасибо.

#385959
stranger написал:
[quote="ustas1983"]сделат их только в режиме чтения

С чего бы? И как она при этом работать будет? Упрощаю вопрос: система установилась. Почему Вы считаете, что лучше разработчиков знаете, что нужно её разделам?[/quote]

Ну зачем сразу так передергивать? Ничего я лучше незнаю, а поэтому и спрашиваю, а не утверждаю. Система работает на компакт флеше а значит по ТТХ режим записи на такой носитель сильно ограничен по сравнению с даже тем же ССД носителями у которых свой хитрый режим перезаписи блоков, неговря уже о магнитных носителях, которые по сути вечны и ограничены лишь механическим изнашиванием.

Войдите или зарегистрируйтесь, чтобы ответить.