LINUX.ORG.RU

tmpfs / ram в каком пакете баг искать?

 ,


0

2

Вообщем что делалось, распаковал intrid образ в init файл вставил этот код:

echo "Press a key to not load to RAM"
if ! read -t 3 -n 1 k
then
    realroot=/tmp/realroot

    mkdir "$realroot"
    mount --move "$rootmnt" "$realroot"
    mount -t tmpfs -o size=60% none "$rootmnt"
    echo
    echo "Copying files, wait..."
    cp -a "$realroot"/* "$rootmnt"
    umount "$realroot"
    echo "Done"
fi
Запаковал обратно. Обратите внимание на size=60% от всей памяти. Если указать 100% (и при любых процентах тоже c трудом) то система вообще может не загрузиться, потому что после загрузки, :
df -h
Filesystem Size Used Avail Use% Mounted on
udev       10M   0    10M   0%  /dev
tmpfs      2.4G 8.8M  2.4G  1%  /run 
none       12G  12G    0    100% /
tmpfs      5.9G  0     5.9G 0%   /dev/shm
tmpfs      5.0M  4.0k  5.0M 1%   /run/lock
tmpfs      5.9G  0     5.9G 0% 
как видно весь корень забит и нет свободного места. При правильном раскладе должно быть что то вроде такого
none 12 G 3G 8G 
- где 3 Gb - это тот объем который занимает система на диске. Где ловить эту ошибку?



Последнее исправление: ving2 (всего исправлений: 1)

как предположение, попробуй добавить -x к cp

неплохо было бы приложить вывод mount до твоих манипуляций

anonymous
()
Ответ на: комментарий от anonymous

как предположение, попробуй добавить -x к cp

попробую но врядли. пробывал и другим способом https://habrahabr.ru/post/253759/ такая же беда. загрузка идет, а потом просто колом все встает. вот выхлопы когда все загружено не в рам http://pastebin.com/gPrtVxZ5

ving2
() автор топика
Ответ на: комментарий от ving2

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

ving2
() автор топика
Ответ на: комментарий от ving2

вот выхлопы

по этим ничего не видно, так как они после чрута уже. добавь перед if строчку mount > $rootmnt/mymtab. после загрузки в корне будет файл mymtab, можешь либо сюда его содержимое вставить, либо на bpaste.net, нопермер.

а что за дистр?

чтобы не перезагружаться каждый раз поставь qemu и запускай свою операционку в нём.

anonymous
()
Ответ на: комментарий от anonymous

а что за дистр?

debian . и где загружается и нормальный размер tmpfs тоже debian. отличается первый от второго тем, что в нем пакеты некоторые установлены из strech. а где работает галимый stable. позже чуть выложу.

ving2
() автор топика
Ответ на: комментарий от anonymous

перед if строчку mount > $rootmnt/mymtab

поставил выше if говорит не могу создать файл read-only file system. Ну и дальше загрузка. Если ставить cp -ax говорит не знаю что такое x . выводит на экран документацию по cp там такого ключа нет. ну и дальше просто No found init.

ving2
() автор топика
Ответ на: комментарий от Ivan_qrt

А du -hs'ом пробовал искать, что всё место занимает?

du -h в корне последнее значение показывает 2.5G . не из под рута. Т.к. под рутом войти не могу.

ving2
() автор топика

А там никакие «бесконечные» файлы псевдоустройств не копируются при этом? или циклическая структура каталогов на симлинках? Выжирание всего места может происходить как раз из-за этого.

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

удалось залогиниться под рутом и посмотерть кто место жрет. Оказался это docker в /var/lib/docker/ ... data лежал файл размером в 100 Gb. Грохнул я этот докер в мете со всем каталогом и все нормально. кто нить объясните что это за файл такой когда размер всего раздела 5 гигов. Ну и спасибо всем конечно.

ving2
() автор топика
Ответ на: комментарий от anonymous

ну в лайве дебиана используется либо rsync, либо cp busyboxa, как и у тебя, но копируется только содержимое livemedia.

ты можешь попробовать всё сделать вручную, поставив команду sh до if, в том числе и посмотреть, что и куда примонтировано. exit в шелле - продолжить загрузку

можешь ещё попробовать в своём скрипте поменять --move на --bind, но тогда тебе придётся ещё в новый $rootmnt домонтировать sys proc dev и т.п., если они не монтируются после твоего скрипта.

anonymous
()
Ответ на: комментарий от anonymous

да уже решилось... не к чему новый велосипед изобретать. спасибо за содействие.

ving2
() автор топика
Ответ на: комментарий от deadNightTiger

не успел посмотреть что за файл - имя файла data (там еще был рядом metadata тоже завышенного размера) опр. как 100 гиговый - удалил его на радостях, демон свежий был не использовался - образов никаких я не создавал. Только стартовал при запуске. Пакет docker-engine . до этого ставил docker.io версия пониже, там такого не было.

ving2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.