urimo: два варианта загрузки: один с очисткой /tmp, а другой другой без оной.

34 сообщения / 0 new
Последнее сообщение
Гость
urimo: два варианта загрузки: один с очисткой /tmp, а другой другой без оной.

Как сделать, чтобы в Лило/Грубе было два варианта загрузки: один с очисткой /tmp, а другой другой без оной.

Dumus
Аватар пользователя Dumus
Не в сети
Зарегистрирован: 17/09/2010

Не знаю, можно ли такое сделать на уровне загрузчика, но у меня очищается при перезагрузке, пример такой работы при выключении описан тут: http://www.nclug.ru/plugins/faq/faq.php?cat.14.16

Мой микроблог: http://juick.com/Dumus/

urimo (не проверено)

Думус, это понятно, хотелось бы следующего:
1)В папке /tmp есть более-менее интересная информация.
2)Надо так: нажал reset на блоке (ой напряжение скачет) - выскакивает окно Лило (Груба) - выбираешь нужный пункт - папка /tmp очищена...

wlads
Не в сети
Зарегистрирован: 20/09/2010

Через загрузчик это сделать нельзя. Засунь в rc.d скрипт с запросом об отчистке /tmp и не мучайся.

urimo (не проверено)

[quote=wlads]Через загрузчик это сделать нельзя. Засунь в rc.d скрипт с запросом об отчистке /tmp и не мучайся.[/quote]
Можно в крайнем случае поставить две системы линукса (с общими /usr /var /...) Но хотелось бы попроще. Нельзя ли в загрузчике прописать выполнение определенного скрипта (например форматирования раздела)

VladTs (не проверено)

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

cin
Не в сети
Зарегистрирован: 21/09/2010

[quote=urimo]
1)В папке /tmp есть более-менее интересная информация.
[/quote]
Хранить интересную информацию в /tmp всё равно что в среде Windows хранить интересную инфу в корзине.

dennica (не проверено)

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

Nick
Не в сети
Зарегистрирован: 20/09/2010

echo "none /tmp tmpfs defaults,mode=1777 0 0" >> /etc/fstab

Очень полезная вещь. /tmp держится в памяти, что дает общее ускорение работы, да плюс еще и чистится сам при перезагрузке.

urimo (не проверено)

А вот в МС ДОС (И в Винде следовательно) в файле autoexec.bat возможны ветвления. И тут у пиннгвина .... в окошке застряла. :-(

urimo (не проверено)

[quote=dennica]Как я понял, здесь смысл не только в том, чтобы сохранить информацию, а и в том, чтобы была возможность в форс-мажорных обстоятельствах ее уничтожить. Бывают и такие ситуации.
Средствами загрузчика эту проблему не решить, тем более, что для такой ситуации хорошо бы не просто убрать файло, а еще и записать нулями тот сектор, где оно лежало. А это возможно сделать только средствами операционной системы.[/quote]

На 100% верно!!! (3 восклицательных знака). А как забить нулями сектор?

Nick
Не в сети
Зарегистрирован: 20/09/2010

[quote=urimo]А вот в МС ДОС (И в Винде следовательно) в файле autoexec.bat возможны ветвления. И тут у пиннгвина .... в окошке застряла. :-([/quote]

Ага, сделайте мне ветвление в autoexec.bat на загрузке Windows 2000/XP/2003. Мы ведь вроде о современных системах говорим или о надстройках над MS DOS для компьютеров с помойки?

Это не говоря уже о том, что сравнивать загрузчик со стартовыми скриптами некорректно. Вообще-то аналогом autoexec.bat являются сценарии /etc/rc.* (/etc/init.d/*). И скажите, что там недостаточно средств по сравнению с MS DOS. Скажите это громко.

<span class='smallblacktext'>[ Редактирование 23.02.2006 - 03:24:30 ]</span>

dennica (не проверено)

Файло держи на отдельном разделе жесткого. А нули в него можешь записать при помощи dd. Так будет проще всего. Все это будет на уровне скриптов. Но тогда будет проблема: как запустить его на выполнение.
Если за машиной работаешь только ты, то можешь сделать так, чтобы скрипт запускался автоматом минут через пять после загрузки, но была возможность остановить его выполнение вручную.
Вот только придется помнить о том, что каждый раз надо останавливать выполнение скрипта. Заморочно, но другого варианта мне в голову не приходит.

igorsia (не проверено)

если уж так приспичило - создай файловую систему в файле и монтируй при загрузке вручную в каталог /tmp после перезагрузки каталог будет чистый а какой файл монтировался - пойди найди.
опять же если дело дойдет до утюга с паяльником будет возможность все быстренько отдать не доказывая что "все все удалилось безвозвратно"

wlads
Не в сети
Зарегистрирован: 20/09/2010

[quote=urimo] Нельзя ли в загрузчике прописать выполнение определенного скрипта (например форматирования раздела)[/quote]
НЕЛЬЗЯ! Загрузчик загружает(извините за тафталогию) ядро и ничего больше. Дальше вступают в работу стартовые скрипты.

urimo (не проверено)

А в стартовых скриптах можно сделать ветви?

Nick
Не в сети
Зарегистрирован: 20/09/2010

[quote=urimo]А в стартовых скриптах можно сделать ветви?[/quote]

http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

igorsia (не проверено)

2Nick боюсь ссылка не в тему. Дело в том что скрипты могут запускаться в двух режимах - интерактивном (это когда сам из командной строки ручками запускаешь) и неинтерактивном (когда по cron или из init.d). Так вот в неинтерактивном режиме всякие попытки получить чего либо с потока ввода обречены на неудачу.
Боюсь что нужно писать нечто на С чтобы опрашивать клавиатуру на предмет нажатых клавиш.

Nick
Не в сети
Зарегистрирован: 20/09/2010

[quote=igorsia]2Nick боюсь ссылка не в тему. Дело в том что скрипты могут запускаться в двух режимах - интерактивном (это когда сам из командной строки ручками запускаешь) и неинтерактивном (когда по cron или из init.d). Так вот в неинтерактивном режиме всякие попытки получить чего либо с потока ввода обречены на неудачу.
Боюсь что нужно писать нечто на С чтобы опрашивать клавиатуру на предмет нажатых клавиш.[/quote]

В тему, в тему. crontab тут ни при чем, и команда read отработает нормально. Это точно.

Другое дело, что "ветвление" при загрузке -- вещь лишняя сама по себе. Компьютер должен а) грузиться без запросов, и б) перегружаться только при смене ядра. Моя машина последний раз перегружалась пару недель назад. Зачем тут ветвление?

wlads
Не в сети
Зарегистрирован: 20/09/2010

[quote=urimo]А в стартовых скриптах можно сделать ветви?[/quote]
BASH в зубы и perl под хвост. Можно все, но кое с чем прийдется.

igorsia (не проверено)

2Nick решил проверить а не идиот ли я... Пишу простейший скрипт
#!/bin/bash
read Nick
echo $Nick

втыкаю этот скрипт в кронтаб и жду... и тишина...
ну не спрашивают скрипты ничего когда они из кронтаба запускаются.

Nick
Не в сети
Зарегистрирован: 20/09/2010

2igorsia:
А я говорил, что из crontab спрашивают? Когда? Я вообще-то знаю, как устроены демоны, как делается перенаправление ввода-вывода и как работает crond. Мне и пробовать не надо. Но какое отношение crontab имеет к теме разговора?

igorsia (не проверено)

crond был приветен для примера.
при загрузке инициализационных скриптов ситуация аналогичная.

Nick
Не в сети
Зарегистрирован: 20/09/2010

[quote=igorsia]crond был приветен для примера.
при загрузке инициализационных скриптов ситуация аналогичная.[/quote]

Нет

maax (не проверено)

юзать initrd, в корень образа начального ram диска положить linuxrc с необходимыми командами, в грубовском menu.lst делаем две записи, одну с initrd другую без... фсё

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

Dumus
Аватар пользователя Dumus
Не в сети
Зарегистрирован: 17/09/2010

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

Мой микроблог: http://juick.com/Dumus/

maax (не проверено)

например? в каких случаях это не хорошо?

urimo (не проверено)

[quote=maax]юзать initrd, в корень образа начального ram диска положить linuxrc с необходимыми командами, в грубовском menu.lst делаем две записи, одну с initrd другую без... фсё

з.ы. хотя идея с tmpfs намного лучше и в плане производительности и плане безопасности, рекомендую последовать совету Nick'а[/quote]
Маакс а можно с этого момента и поподробнее.

maax (не проверено)

если писать со всеми подробностями, то эт долго, капризно писать..

вкратце:
1. создаем образ initrd (dd if=/dev/zero of=/initrd.img bs=1k count=16384)
2. монтируем его mount -o loop /initrd.img /testramfs
3. компилим busybox с необходимыми инструментами (chroot, mknod, mkrootdewv, fsck, mount, umount и др.)
4. в /testramfs создаем минимальную структуру для загрузки линукса
5. суем в /testramfs/bin busybox и жесткие линки других программ на этот же самый busybox
6. создаем устройства в /testramfs/dev с помощь mknod (console, null и др.) хотя console наверно не надо
7. пишем linuxrc :) подробнее: монтируем proс sysfs, создаем устройства, включая блочные устройства mknod /dev/hda1, создаем корневую директорию через mkrootdev, монтируем ее с rw, чистим tmp, потом pivot_root, размонтировать sysfs и proc, всё.

если нужно подробнее, то смогу позже написать, когда время появится..

urimo (не проверено)

Было бы очень неплохо, если бы время появилось

Dumus
Аватар пользователя Dumus
Не в сети
Зарегистрирован: 17/09/2010

[quote=maax]например? в каких случаях это не хорошо?[/quote]
Например, когда нужно быстро выключить комп, чтоб пойти попить пива - а тут очистка... %-6

Мой микроблог: http://juick.com/Dumus/

maax (не проверено)

где тут? :) tmpfs лежит в памяти, если нужно быстро выключить, то выключаешь и фсё... как там? энергозависимая память, выключил и все пропало...

Nick
Не в сети
Зарегистрирован: 20/09/2010

[quote=maax]где тут? :) tmpfs лежит в памяти, если нужно быстро выключить, то выключаешь и фсё... как там? энергозависимая память, выключил и все пропало...[/quote]

Строго говоря, не совсем. tmpfs может свопится, и потом из свопа можно что-нибудь извлечь. Поэтому для действительно важных вещей такое не годится. Но думаю, что зачинатель темы вряд ли работает с гостайной или чем-то подобным, иначе не задавал бы таких вопорсов.

maax (не проверено)

[quote=Nick]Строго говоря, не совсем. tmpfs может свопится, и потом из свопа можно что-нибудь извлечь. Поэтому для действительно важных вещей такое не годится. Но думаю, что зачинатель темы вряд ли работает с гостайной или чем-то подобным, иначе не задавал бы таких вопорсов.
[/quote]

можно шифровать своп-раздел, на моей памяти нативная поддержка есть в openbsd, и патч реализующий это под linux... собственно способность tmpfs свопится одна из фич этой псевдофайловой системы...

RSS-материал