Сайт | Скачать | Видео | Wiki

Автор Тема: Файловая система (и соответственно FULL ОС) полностью в RAM (решено)...  (Прочитано 3051 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 31069
  • Репутация: +207/-0
    • PuppyRus-A
все остальные утилиты присутствуют?
Они маленькие и никому не мешают
Ну и пересобрать модуль по списку пакетов очень просто. редактируйте как хотите
Установи на диск. Обновляй штатно. Используй в RAM.
Фул в RAM - врядли заинтересует людей с RAM <20гб :)
Но с UIRD , наверное, и такое можно
Сделайте себе calculate+uird . Тут помогут
Ну и я Вам написал вначале - полный copy2ram от сохраненки в ram будет отличаться только чуть более быстрым ПЕРВЫМ запуском проги
Оно того не стоит
Настройки Puppyrus плюс мощь Генту оверлеев. Эх...
Не очень про это понял. Делайте. Рассмотрим на примерах. Мне интересно

не надо пересобирать всю систему,
нигде не надо
пересобрать transmission c USE-флагом gtk2
Он нигде не соберется (свежий) т.к. этот код там удален и гента ничем не поможет
Ни один не завёлся, кроме старого Puppyrus
Скорее всего дело в ядре. Пробуйте совсем старые.

Выглядело бы понятнее...
Еще раньше обсудили и уже сделал - см. шапку форума

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 2812
  • Репутация: +33/-0
    • MagOS linux
Фул в RAM - врядли заинтересует людей с RAM <20гб
С uird  можно использовать zram для всей папки /memory, соответственно фул в рам будет пожат, раза в два я думаю.

Оффлайн imp

  • /dev/бубен
  • Ветеран
  • *****
  • Сообщений: 1310
  • Репутация: +40/-1
  • /dev/hands from /dev/ass
Но невозможность убрать всё из Puppy мне не нравится
- Ты суслика видишь?
- Нет.
- И я не вижу, а он есть...
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8146
  • Репутация: +183/-2
  • Старый чайник
 Посмотрел CLS-20.6. Жирнющий. Пихать такое в RAM?? Сомнительно...
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150) Richy64
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150) Richy32
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400) Richy64

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
Фул в RAM - врядли заинтересует людей с RAM <20гб
Сейчас память не такая дорогая, чтобы её было мало. Мне и 20GB мало, хотел бы 64GB, но это слишком много менять надо.

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

Сделайте себе calculate+uird . Тут помогут
Да, посмотрел на uird, система интересная, конечно. Но и там я не увидел конкретного решения, просто закачать всё с / в RAM. Куча разных настроек, но плохо с примерами.

Ну и я Вам написал вначале - полный copy2ram от сохраненки в ram будет отличаться только чуть более быстрым ПЕРВЫМ запуском проги
Оно того не стоит
Не знаю, что за компы вы используете, но у меня быстродействие всех программ и визуально и на деле увеличилось. Более того, мне это интересно не только из-за быстродействия, но и по другим причинам.
Он нигде не соберется (свежий) т.к. этот код там удален и гента ничем не поможет
Это понятно, если код поддержки gtk2 удалён, то ничего не сделаешь. Но я переделал тему MurrezaSilver под gtk3 и под gtk2 почти одинаково выглядит. Без этих огромных кнопок и большущих подменю.

Да, попробовал подменить initrd от сохранёнки, но не завелось. Kernel panic, все дела... Но я продолжаю искать. Вот нашёл скрипт:
Код
# Script to copy / to tmpfs and continue boot from there
# Do not run this from a child shell. Use ". ramify" or exec.
# The shell running this script must be the only process on the system.


# Ensure this runs in /
cd /


# Create and mount tmpfs file system for /
mount -t tmpfs tmpfs mnt


# Copy everything from / filesystem to tmpfs
# Tar will restore proper owners and permissions when run as root
# FIXME: This is very slow because it reads / in many small pieces
# TODO: Add --exclude to prevent copying unneeded stuff
tar --one-file-system -c . | tar -C /mnt -x


# Move other mounts
mount --move dev mnt/dev
mount --move proc mnt/proc
mount --move run mnt/run
mount --move sys mnt/sys


# Create fstab with just new root file system
sed -i '/^[^#]/d;' mnt/etc/fstab
echo 'tmpfs / tmpfs defaults 0 0' >> mnt/etc/fstab


# Pivot root using instructions from pivot_root(8) man page
cd mnt
mkdir old_root
pivot_root . old_root


# Old root can only be unmounted once sh running from old root
# finishes. Continue startup normally using init.
exec chroot . bin/sh -c "umount old_root ; exec sbin/init"

Делает всё тоже самое, только после загрузки. Но вот проблема, что рутовая система, в которую он монтирует ограничена 10GB, а у меня 11 с чем-то. И когда скрипт заканчивает работу, то рутовая файловая система (которая в tmpfs) оказывается полностью заполнена, хотя RAM ещё есть... не вижу, где в этом скрипте увеличить количество монтируемой tmpfs, которая потом станет рутовым разделом.

Тут что ли указывать надо? Не пойму... Но вроде это временная папка или нет?
Код
mount -t tmpfs -o size="здесь что ли?" tmpfs mnt

Посмотрел CLS-20.6. Жирнющий. Пихать такое в RAM?? Сомнительно...

Ну, похожий MX Linux c 9.6GB против 11GB у Calculate запихал и нормально, быстро очень работал, мне понравилось. И это я даже ничего не оптимизировал. Там же можно поудалять всякие логи, куча программ ещё лишних ждёт своего часа... Можно перейти на другой профиль (CLS, CLDL и тд.)...
« Последнее редактирование: 29 Октябрь 2020, 21:23:00 от Harzah2 »

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
Код рабочий. Всё работает для любого Линукса, думаю и для Puppyrus может пригодится. Если кому-то нужно, вот полностью рабочий код (создайте в папке /mnt папку mnt или измените пути):
Код
# Script to copy / to tmpfs and continue boot from there
# Do not run this from a child shell. Use ". ramify" or exec.
# The shell running this script must be the only process on the system.

# Ensure this runs in /
cd /

# Create and mount tmpfs file system for /
mount -t tmpfs -o size=80% tmpfs mnt/mnt

# Copy everything from / filesystem to tmpfs
# Tar will restore proper owners and permissions when run as root
# FIXME: This is very slow because it reads / in many small pieces
# TODO: Add --exclude to prevent copying unneeded stuff
tar --one-file-system -c . | tar -C /mnt/mnt -x

# Move other mounts
mount --move dev mnt/mnt/dev
mount --move proc mnt/mnt/proc
mount --move run mnt/mnt/run
mount --move sys mnt/mnt/sys

# Create fstab with just new root file system
sed -i '/^[^#]/d;' mnt/mnt/etc/fstab
echo 'tmpfs / tmpfs defaults 0 0' >> mnt/mnt/etc/fstab

# Pivot root using instructions from pivot_root(8) man page
cd mnt/mnt
mkdir old_root
pivot_root . old_root

# Old root can only be unmounted once sh running from old root
# finishes. Continue startup normally using init.
exec chroot . bin/sh -c "umount old_root ; exec sbin/init"


Спасибо всем участникам форума за живейшее обсуждение темы. Про Puppyrus постараюсь не забывать и может быть таки удастся скрестить как-нибудь Puppyrus и Calculate Linux. Это было бы интересно!!!
« Последнее редактирование: 29 Октябрь 2020, 22:09:34 от Harzah2 »

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1500
  • Репутация: +24/-1
Ну, похожий MX Linux c 9.6GB против 11GB у Calculate запихал и нормально
500Mb для "местных" систем - жирновато, а тут гигабайты
И эти гигабайты мусора будут впустую отжирать ОЗУ
1.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)
2.core2duo,4Gb,Radeon HD7850 (DDR01, ubuntu+openBox+LXPanel)

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 31069
  • Репутация: +207/-0
    • PuppyRus-A
я не увидел конкретного решения, просто закачать всё с / в RAM.
Вот же - автор подсказал. Спрашивайте - подробнее расскажет
    Фул в RAM - врядли заинтересует людей с RAM <20гб
С uird  можно использовать zram для всей папки /memory, соответственно фул в рам будет пожат, раза в два я думаю.
Куча разных настроек, но плохо с примерами.
Я тоже из именно за это критиковал. Но для хитрых случаев типа вашего - лучший вариант и можно сделать пакеты (или как это в генту называется) UIRD. Для arch мы их сделали и написали примеры - см. prtar2008*.iso
попробовал подменить initrd от сохранёнки
Модули ядра внутри инитрд от используемого ядра?
может быть таки удастся скрестить как-нибудь Puppyrus и Calculate Linux
Мне было бы интересно ближе познакомиться с генту. У нас есть спецю раздел для дистров форумчан
Спасибо +  за интересную тему

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 31069
  • Репутация: +207/-0
    • PuppyRus-A
Несжатая ФС в ram - крутовато. Надо как-то пожать. Без squash, те. RW : btrfs zram
Вот еще хуки от арча
https://aur.archlinux.org/packages/mkinitcpio-loop-subdir/
https://aur.archlinux.org/packages/mkinitcpio-tarball-utils/
Вдохновясь ими можно написать свой и вписать его в структуру Arch (или любого линукса)
Написать хук проще чем полностью инитрд
Ну или - смлотрите как сделан UIRD . Он на dracut , который есть почти везде

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
500Mb для "местных" систем - жирновато, а тут гигабайты
И эти гигабайты мусора будут впустую отжирать ОЗУ
Ну, так-то да. Но это просто для примера, что такое возможно... оптимизации будут, да даже та же возможность уменьшить размер дистрибутива... так-то я просто взял Calculate и полностью закачал его в RAM и он работает...

Я тоже из именно за это критиковал. Но для хитрых случаев типа вашего - лучший вариант и можно сделать пакеты (или как это в генту называется) UIRD. Для arch мы их сделали и написали примеры - см. prtar2008*.iso
Да, меня заинтересовала эта система тоже. Во всяком случае, она позволяет просто делать то, на что с другими надо мозг вывернуть наизнанку... В Генту это называется ебилды...

Модули ядра внутри инитрд от используемого ядра?
Нет, надо более внимательно было к этому вопросу подойти... там я почти ничего не менял, поэтому собственно и не завелось...
Мне было бы интересно ближе познакомиться с генту.
Ну, Генту - это на самом деле обычный дистрибутив, просто позволяет добиться чуть большей кастомизации. Хотя, если разбираешься в вопросе, это можно сделать в любом дистрибутиве.
Несжатая ФС в ram - крутовато. Надо как-то пожать. Без squash, те. RW : btrfs zram
В Calculate перешли на zram недавно. Если нет раздела свопа на диске, то его автоматом заменяет zram. У меня, например zram своп сейчас 41.1GB. Круто, так-то... вот надо придумать как его использовать...
Написать хук проще чем полностью инитрд
Да, надо будет оптимизировать... Спасибо за примеры, буду смотреть... плюс ещё, должно по идее с SSD, быстрее копировать в память, чем с HDD, думаю вот... В Calculate/Генту есть тоже свои возможности, мне советовали передавать ядру параметр docache на этапе загрузки... должно полностью в память загрузиться...
« Последнее редактирование: 30 Октябрь 2020, 18:01:36 от Harzah2 »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 3851
  • Репутация: +120/-1
В Calculate перешли на zram недавно. Если нет раздела свопа на диске, то его автоматом заменяет zram. У меня, например zram своп сейчас 41.1GB.
При 20Gb оперативки?

Уже не первый раз вижу практику назначения zram > memory. Здесь Swap больше не нужен! -  DISKSIZE="200%".
Если брать пакет systemd-swap, то значит в swap.conf выставлять  zram_size=$(( RAM_SIZE / 0.5 )), при дефолтной 4. Непривычно.


upd.
Цитата
Note:
There is little point creating a zram of greater than twice the size of memory
since we expect a 2:1 compression ratio. Note that zram uses about 0.1% of the
size of the disk when not in use so a huge zram is wasteful.
https://www.kernel.org/doc/Documentation/blockdev/zram.txt
« Последнее редактирование: 31 Октябрь 2020, 00:44:32 от krasnyh »

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2074
  • Репутация: +25/-0
практику назначения zram > memory.
по теме показалась интересной статья - https://manjaro.ru/how-to/uskoryaem-starye-mashinki---systemd-swap.html (  и еще - https://www.kernel.org/doc/Documentation/blockdev/zram.txt [бегло проглядел, привлекла - "авторитетность ресурса"])
-----------
? можно ли как-либо "запускать zram" из kernel-строки ? (т.е. с передачей параметров zram~a [без "предварительных внутрисистемных настроек"  - ближе к аналогии для запуска zswap])   --upd: по следующему сообщению понял что вроде "нельзя" (но вкл/выкл возможно и можно...)
« Последнее редактирование: 30 Октябрь 2020, 20:15:03 от knn »
Samsung RV510: intel pent.T4500; чипсет intel Gl40; ATI mob. Radeon HD 5145, RAM=3Gb; hd1 - Grub2; hd2 - Gr4D.
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 2812
  • Репутация: +33/-0
    • MagOS linux
В Calculate перешли на zram недавно. Если нет раздела свопа на диске, то его автоматом заменяет zram.
Это очень распространенная ошибка. Zram это не swap. Zram это блочночное устройство в ram с прозрачным сжатием. Его можно.отформатировать в любую фс в том числе.swap. То есть своп это только один из вариантов использования. В uird можно испольэовать и как своп и в качестве замены tmpfs для верхнего слоя ауфс.

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1500
  • Репутация: +24/-1
Ну, так-то да. Но это просто для примера, что такое возможно ... так-то я просто взял Calculate и полностью закачал его в RAM и он работает...
понимаю, спортивный интерес :)
Calculate пробовал лет 5 назад, была она тогда раз в десять толще паппиков, при одинаковой практически функциональности - не зацепила.
Сейчас смотрю еще пополнела  :o
ps
При таком количестве ОЗУ думаю и на дисковой подсистеме Вы не экономите?
Предположу что SSD NVMe ?
Если так то парится с загрузкой в RAM особого смысла нет - у людей винда с них грузится за секунды, не говоря о приложениях (имхо конечно)
« Последнее редактирование: 31 Октябрь 2020, 13:11:07 от k0l0p0k »
1.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)
2.core2duo,4Gb,Radeon HD7850 (DDR01, ubuntu+openBox+LXPanel)

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
понимаю, спортивный интерес
Не только, но и как возможность работать полностью в оперативке... А если ещё сжать (как zram), а если ещё удалить всё лишнее (всякие локали там, логи)... то что тогда? Вот я буквально вчера установил Calculate на соседний раздел (её уменьшенную версию, CLS - 1.3GB). Сам я работал в это время в RAM-режиме и скачанный файл .iso перетащил в оперативку. Так вот, установка на соседний раздел заняла пару минут от силы, если не меньше. Разве не интересно?

Calculate пробовал лет 5 назад, была она тогда раз в десять толще паппиков, при одинаковой практически функциональности - не зацепила.
Сейчас смотрю еще пополнела
Ненамного она располнела. Всё примерно на том же самом уровне в пару гигабайт, а при распакове CLS - это около 5GB. CLDX - примерно 10GB. С Puppyrus не сравнить, конечно... но, это ещё Гента, к тому же...
Предположу что SSD NVMe ?
Если так то парится с загрузкой в RAM особого смысла нет - у людей винда с них грузится за секунды, не говоря о приложениях (имхо конечно)
Да, SSD - тоже есть... один правда не так давно полетел и вот поэтому я захотел поработать в оперативке. Да и в ней всё равно быстрее, как ни крути. Никаких обращений к диску, всё крутится в одном месте. Так как есть zram, то система не уйдёт в медленный своп, так что с какой стороны ни посмотри - одни плюсы...

Я даже опыт провёл, закинул в оперативку ещё папку с файлом Виртуалбокса с Виндой и получилось, что она работала тоже в RAM. И тоже очень быстро... правда Винду пришлось сильно сжимать, диск дефрагментировать и уменьшать, но оно того стоит, по-моему...

Это очень распространенная ошибка. Zram это не swap. Zram это блочночное устройство в ram с прозрачным сжатием. Его можно.отформатировать в любую фс в том числе.swap. То есть своп это только один из вариантов использования.
Так это понятно, в чём ошибка-то? Просто в Calculate zram используют как своп, вот и всё. А в MagOS или Puppyrus могут использовать вместо обычного диска.
« Последнее редактирование: 01 Ноябрь 2020, 13:08:13 от Harzah2 »