Автор Тема: демонтиране и изчистване на ramdisk  (Прочетена 3428 пъти)

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
При стартиране подавам следните параметри към ядрото:
Примерен код
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
Активен

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #1 -: Feb 22, 2004, 21:21 »
Е нали си демонтирал ramdisk-a?
Активен

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #2 -: 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 работи на този принцип и май няма проблеми.
Активен

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #3 -: Feb 25, 2004, 21:08 »
Ако ползваш Live-CD, то чистенето на RAM-a е излишно.
Активен

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #4 -: 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-а и/или пръстите на този, който вади диска.)
Активен

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #5 -: Feb 28, 2004, 10:49 »
Опаа... изтеглих си скриптовете linux-live-4.0.1 и видях, че си сгрешил нещо:
Примерен код
/sbin/blockdev --flushbufs /dev/ram0

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

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #6 -: 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) за това отива цяла вечност).
Активен

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #7 -: Feb 28, 2004, 19:01 »
SLAX няма проблеми, защото ядрото е с поддръжка на devfs и devfs се монтира от /linuxrc '<img'>
Активен

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #8 -: Mar 03, 2004, 19:26 »
Изтеглих от linux-live.org ядро с поддръжка на devfs и промених скриптовете си така, че преди да се демонтира ramdisk-а, да се демонтира devfs и proc от него и вече може да се освобождава паметта '<img'>

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

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #9 -: Mar 06, 2004, 12:50 »
Цитат (vstoykov @ Март 03 2004,19:26)
... Сега работя върху скриптовете за монтиране на дисковете (тези от linux-live не ми харесват, защото не създават коректен fstab и не монтират с каквито аз искам опции).

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

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #10 -: Mar 07, 2004, 19:40 »
Искаш ли да ти я постна, или сам да си я правиш'<img'>
Активен

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #11 -: Mar 11, 2004, 19:40 »
Цитат (paveldikov @ Март 07 2004,20:40)
Искаш ли да ти я постна, или сам да си я правиш'<img'>

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

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

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #12 -: Mar 13, 2004, 12:03 »
Искам да попитам за дистрото ти: нали е на англииски'<img'>
Активен

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #13 -: Mar 13, 2004, 12:46 »
Цитат (paveldikov @ Март 13 2004,13':0')
Искам да попитам за дистрото ти: нали е на англииски<!--emo&'<img'>

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

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

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

paveldikov

  • Напреднали
  • *****
  • Публикации: 502
  • Ultra God Master
    • Профил
    • WWW
демонтиране и изчистване на ramdisk
« Отговор #14 -: Mar 29, 2004, 21:17 »
Е? Нещо ново?
sorry, чe прозвучах катo админ
Активен

FreeBSD 6.1-RELEASE - The Power To Serve | Slackware Linux 10.0

The Dark Star - YOUR next operating system

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Linux - Unix Domain Socket - RamDisk
Общ форум
rcbandit 10 4362 Последна публикация Mar 13, 2011, 18:18
от rcbandit