Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: vstoykov в Feb 22, 2004, 16:02



Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Feb 22, 2004, 16:02
При стартиране подавам следните параметри към ядрото:
Примерен код
root=/dev/ram0 initrd=\initrd.gz init=linuxrc quiet load_ramdisk=1 ramdisk_size=13312 rw vga=788

 
Тъй като не желая ramdisk-ът да ми заема оперативната памет, съм направил така, че да се създава tmpfs и да се премества кореновата директория върху tmpfs:
 
Примерен код

mount -t tmpfs -o size=90% tmpfs $NEWROOT
echo "changing root directory..."
cd $NEWROOT
/sbin/pivot_root . mnt/ramdisk
exec /usr/bin/chroot . /linuxrc2 <dev/console >dev/console 2>&1

 
Когато се опитам да демонтирам ramdisk-а, umount ми казва, че е зает. Оказва се, че файлът /mnt/ramdisk/dev/console (който някога е бил /dev/console) се използва от някакви процеси (нещо от ядрото доколкото разбирам).
 
Когато пробвам така:
 
Примерен код
umount -l /mnt/ramdisk

 
се демонтира, но когато опитам да освободя паметта:
 
Примерен код
/sbin/blockdev --flushbufs /dev/ram0

 
ми казва:
 
Примерен код
BLKFLSBUF: Device or resource busy


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Feb 22, 2004, 21:21
Е нали си демонтирал ramdisk-a?


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Feb 22, 2004, 22:00
Цитат (paveldikov @ Фев. 22 2004,22:21)
Е нали си демонтирал ramdisk-a?

Демонтира се, но когато напиша lsof | ramdisk ми показва доста процеси, които ползват /mnt/ramdisk/dev/console, и ако взема да изтрия този файл, ми дава едно (deleted) накрая на всеки ред.
Въпросните процеси май са част от ядрото... а с ядрото не искам да си имам проблеми.

Оперативната памет не се освобождава. Когато го монтирам обратно, се оказва, че данните си стоят (не се махат от RAM).

Когато се опитам да освободя паметта (/sbin/blockdev --flushbufs /dev/ram0) ми казва:

Примерен код
BLKFLSBUF: Device or resource busy


Ако махна /dev/console от initrd.gz, ядрото се паникьосва.

SLAX работи на този принцип и май няма проблеми.


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Feb 25, 2004, 21:08
Ако ползваш Live-CD, то чистенето на RAM-a е излишно.


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Feb 26, 2004, 21:10
Цитат (paveldikov @ Фев. 25 2004,22<!--emo&:0)
Ако ползваш Live-CD, то чистенето на RAM-a е излишно.

Защо смяташ, че е излишно?

Идеята ми е:
След като се стартира, се монтира компресирана файлова система, след което изпълнимите файлове от ramdisk-а могат да се изтрият (вместо тях ще се ползват съответните файлове от компресираната файлова система).

 /var, /tmp, /root, /home ще бъдат на tmpfs, която е разположена във виртуалната памет т.е. може да бъде и на swap-а (ако има такъв).

В такъв случай, ramdisk-ът ще заема място (дори и да е празен).

При спирането на системата, ще се копират малко файлове на tmpfs, с цел да може да се демонтира компресираната файлова система преди рестартиране. Идеята е, преди да се рестартира компютъра, вратичката на CD-R0M устройството да се отвори сама  за да може да се извади диска.

(При опит да се извади диска, след рестартиране или по-точно по време на следващото стартиране, има опасност по време на изваждането на диска, вратичката да започне да се затваря и да затисне CD-ROM-а и/или пръстите на този, който вади диска.)


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Feb 28, 2004, 10:49
Опаа... изтеглих си скриптовете linux-live-4.0.1 и видях, че си сгрешил нещо:
Примерен код
/sbin/blockdev --flushbufs /dev/ram0

трябва да е:
Примерен код
/sbin/blockdev --flushbufs /dev/rd/0


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Feb 28, 2004, 18:27
Цитат (paveldikov @ Фев. 28 2004,11:49)
Опаа... изтеглих си скриптовете linux-live-4.0.1 и видях, че си сгрешил нещо:
Примерен код
/sbin/blockdev --flushbufs /dev/ram0

трябва да е:
Примерен код
/sbin/blockdev --flushbufs /dev/rd/0

За да работи така, трябва да се монтира devfs, а ядрото което ползвам, не е конфигурирано с поддръжка на devfs. Когато devfs не е монтирана, няма /dev/rd/0. Но проблема не е толкова в освобождаването на паметта, колкото в това, че след pivot_root, продължава да се ползва ramdisk-ът (по-точно dev/console) и не мога нормално да демонтирам ramdisk-а (налага се да ползвам -l).

Подозирам, че може и да се реши този проблем, ако монтирам devfs преди pivot_root, но търся решение без да ползвам devfs. Ако не намеря такова ще пробвам с devfs (но ще трябва да си прекомпилирам ядрото, а на моята машина (celeron 333) за това отива цяла вечност).


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Feb 28, 2004, 19:01
SLAX няма проблеми, защото ядрото е с поддръжка на devfs и devfs се монтира от /linuxrc ;)


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Mar 03, 2004, 19:26
Изтеглих от linux-live.org ядро с поддръжка на devfs и промених скриптовете си така, че преди да се демонтира ramdisk-а, да се демонтира devfs и proc от него и вече може да се освобождава паметта :)

Сега работя върху скриптовете за монтиране на дисковете (тези от linux-live не ми харесват, защото не създават коректен fstab и не монтират с каквито аз искам опции).


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Mar 06, 2004, 12:50
Цитат (vstoykov @ Март 03 2004,19:26)
... Сега работя върху скриптовете за монтиране на дисковете (тези от linux-live не ми харесват, защото не създават коректен fstab и не монтират с каквито аз искам опции).

Ами в скрипта knoppix_autoconfig има функция rebuildfstab(), ако искаш, ще ти я постна.


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Mar 07, 2004, 19:40
Искаш ли да ти я постна, или сам да си я правиш???


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Mar 11, 2004, 19:40
Цитат (paveldikov @ Март 07 2004,20:40)
Искаш ли да ти я постна, или сам да си я правиш???

Скриптовете за създаване на fstab са почти готови  :D
Остава да напиша скрипта за добавяне на флопитата във fstab, да ги  прегледам за грешки и съм готов.

В същност до скоро ползвах точно скриптовете от knoppix. Там rebuildfstab беше цял скрипт а не функция (за най-новата версия не знам). Бях го променил, така че да монтира vfat дяловете правилно, но се оказа, че не е съвместим с devfsd...


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Mar 13, 2004, 12:03
Искам да попитам за дистрото ти: нали е на англииски???


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Mar 13, 2004, 12:46
Цитат (paveldikov @ Март 13 2004,13:0)
Искам да попитам за дистрото ти: нали е на англииски<!--emo&???

Не целият интерфейс е на английски. При стартиране пита за някои неща на български. Файлът /etc/issue съдържа малко текст на български език. KDE и GNOME по подразбиране са на английски (но поради бъгове в тях, на места може да видиш думи на български). Пускането на български интерфейс в KDE става с няколко клика на мишката, а в GNOME, трябва да промениш една променлива на обкръжението (environment variable). За повече информация вж. страницата ми.
Важните за езиковите/регионални настройки променливи на обкръжението може да видиш, като напишеш в терминал locale.
Менютата във Fluxbox са на английски (една-две думи на български май имаше там).

Постарал съм се навсякъде да може да се пише/чете на български.
Виж снимките на екрана на сайта.

В бъдещите версии може да направя така, че при стартиране да пита потребителя за език и да настройва каквото може да се показва на съответния език.


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Mar 29, 2004, 21:17
Е? Нещо ново?
sorry, чe прозвучах катo админ


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Mar 29, 2004, 22:24
Цитат (paveldikov @ Март 29 2004,22:17)
Е? Нещо ново?
sorry, чe прозвучах катo админ

Нови неща в дистрибуцията:
* KDE 3.2.1
* Xfree86 4.4.0
* Още векторни шрифтове
* Монтиране на fat дяловете с правилни опции (и създаване на коректен fstab)
* Доста редакции по стартиращите скртиптове
* Събира се на малък диск 8см (250MB) и даже остава малко място  ;)  За целта са изтрити доста излишни неща.

Ще публикувам в сайта скриптовете, с които създавам iso-то на current версията.

Вероятно има и други нови неща за които не се сещам.


Титла: демонтиране и изчистване на ramdisk
Публикувано от: sebastianz55 в Mar 29, 2004, 23:08
това ще да е наистина практично, веднага щом мога ще го пробвам.
и ако не е тайна на сайта не пише, кои неща са свалени, та да се събере на малък диск.


Титла: демонтиране и изчистване на ramdisk
Публикувано от: vstoykov в Mar 31, 2004, 22:33
Цитат (sebastianz55 @ Март 30 2004,00:08)
това ще да е наистина практично, веднага щом мога ще го пробвам.
и ако не е тайна на сайта не пише, кои неща са свалени, та да се събере на малък диск.

Последната версия, която се събира на малък диск все още не съм качил. В момента има качена една версия, която съм пращал по куриер от Варна до София (много ми е скъп трафика).

На сайта съм качил един архив със скриптовете, които съм ползвал при създаването на дистрибуцията както и кратки (и вероятно не много разбираеми) записки какво и как съм инсталирал. Ако ти е интересно може да прочетеш скриптовете и записките (предупреждавам те, че са доста дълги). Вероятно най-много ще те заинтересуват следните неща:

* таг файловете използвани за инсталиране на стандартните пакети (може да ги намериш в директорията devel/tagfiles/minicd/)

*записките за това какво друго е инсталирано (във файла  devel/notes/minicd/Install_linux.log)

*скриптовете които трият не много важните неща:
delete_mess
delete_mess_fonts
delete_mess_kde


Титла: демонтиране и изчистване на ramdisk
Публикувано от: paveldikov в Apr 03, 2004, 11:51
Ако махнеш GNOME, от моето дистро смисъл няма да има.
Ето и логото, което нарисувах за Patatos Linux:
http://paveldikov.hit.bg/cd2.bmp