51 (2017-06-27 10:30:08 отредактировано ingvaro)

Последние правки :  --   вариант с очисткой RecentDocuments.
Все оказалось гораздо проще !!!

1) В строке
kernel=$(rpm -qa --qf '%{name}  %{installtime}\n' ........
надо продублировать  sed '$d'

Spoiler

kernel=$(rpm -qa --qf '%{name}-%{version}-%{release} %{installtime}\n' | grep -E "^kernel-$ktype" | \
grep -v "latest" | sort -nk 2 | sed '$d' | sed '$d' | awk '{ print $1 }')

Свежие файлы devel  удаляются

2)    стр 122 заработала такая

if [ "${kernel}${trash}${usertmp}${urpmicache}${mozcache}${chromecache}${operacache}" = 4,"0K4","0K8","0K" ];  then

Потом опять не заработала. Я ее пока заблокировал

mageia-cleaner-ingvaro-edition-5.tar.gz - https://cloud.mail.ru/public/4wXY/EMZAsuWbu

52 (2017-06-27 13:17:47 отредактировано alex_q_2000)

Версия Mageia не должна иметь значения.
Требуется этот "devel" исключить из выборки удаляемых ядер, ибо devel - это зависимость, которую Вы отобразили в общем списке установленных ядер и разбираться с ней с помощью --nodeps. Чтобы теперь исключить devel из списка ядер на удаление - нужно добавить grep -v "devel" перед ... | grep -v "latest" в стр. 23... Как то так...

Или скачайте 1.tar.gz (https://cloud.mail.ru/home/LIVE-REMASTER/script's/), скриншоты там же.. А папки RecentDocuments может и не быть... Там эти вещи учтены. Код ниже... Я пошёл гладить штаны, мне по делам нужно бы съездить... ))

Spoiler

Консоль
#!/bin/sh

clear

#Определяем цвет выделения
color='\e[31m'; ncolor='\e[0m';

if [[ "$EUID" != "0" ]] ; then
#  /usr/bin/pkexec /mageia-cleaner/mageia-cleaner "$@"
echo "Требуются привилегии root..."
  su -c "'$(pwd)'/mageia-cleaner" "$@"
  exit $?
fi

echo -e "\e[1mMageia Cleaner\e[0m"
echo -e "------------------------------------------------"
echo -e "просматриваю установленные ядра, ждите..."

#Задаю тип возможного ядра для поиска [desktop, server, linus]
ktype="(desktop|server|linus)"

#Просматриваю все установленные ядра и сортирую их по времени Unix сверху вниз. Внизу - самое свежее
allkernel=$(rpm -qa --qf '%{name}-%{version}-%{release} %{installtime}\n' | grep -E "^kernel-$ktype" | \
  sort -nk 2 | awk '{ print $1 }')

#Выделяю ядра для удаления. Сортирую по времени Unix, исключаю latest и последнюю строку с имененм активного, т.е. самого свежего ядра
remkernel=$(rpm -qa --qf '%{name}-%{version}-%{release} %{installtime}\n' | grep -E "^kernel-$ktype" | \
  grep -v "devel" | grep -v "latest" | sort -nk 2 | sed '$d' | awk '{ print $1 }')

#Выделяю имя самого свежего ядра
actkernel=$(rpm -qa --qf '%{name}-%{version}-%{release} %{installtime}\n' | grep -E "^kernel-$ktype" | \
  grep -v "devel" | grep -v "latest" | sort -rnk 2 | awk '{ print $1 }' | head -n 1)

clear
  echo -e "\e[1mMageia Cleaner\e[0m"
  echo "------------------------------------------------"
  echo -e ${color}"Активный релиз:${ncolor}\n$actkernel\n"
  echo -e ${color}"Установленные ядра:${ncolor}\n$allkernel\n"

#Считаю размер удаляемых ядер, если есть ядра на удаление
  if [ -n "$remkernel" ]; then
  #Выделяю из вывода rpm -qi размеры пакетов через пробел
  klsize=$(rpm -qi $remkernel | grep "Size" | cut -f 2 -d : -s | cut -c 2-)
  #Заменяю пробелы на "+"
  klsize=$(echo $klsize | sed 's/ /+/g')
  #Считаю общий вес пакетов [ Мбайт ]
  let "klsize=($klsize) / 1048576"

  echo -e ${color}"Можно безопасно удалить:${ncolor}\n$remkernel\n"
  echo -e ${color}"Освобождается без зависимостей: $klsize МБайт\n"${ncolor}
  echo "------------------------------------------------"
  else
  echo -e ${color}"Лишних ядер не обнаружено...\n"${ncolor}
  echo "------------------------------------------------"
  fi;

  #Корзина
  if [ -d "/home/$USER/.local/share/Trash" ]; then
  trash=$(du -sh /home/$USER/.local/share/Trash | awk '{ print $1 }')
    if [ "$trash" != "4,0K" ]; then
  echo -e "Корзина пользователя: ${color}$trash${ncolor}"
     else
  echo -e "Корзина пользователя: пуста"
    fi;
    else
  trash="4,0K"
  echo -e "Корзина пользователя: не обнаружена"
  fi;

  #Каталог временных файлов пользователя
  if [ -d "/home/$USER/tmp" ]; then
  usertmp=$(du -sh /home/$USER/tmp | awk '{ print $1 }')
    if [ "$usertmp" != "4,0K" ]; then
  echo -e "Каталог временных файлов: ${color}$usertmp${ncolor}"
     else
  echo -e "Каталог временных файлов: пуст"
    fi;
  fi;

  #Каталог RecentDocuments
  if [ -d "/home/$USER/.local/share/RecentDocuments" ]; then
  userrdoc=$(du -sh /home/$USER/.local/share/RecentDocuments | awk '{ print $1 }')
    if [ "$userrdoc" != "4,0K" ]; then
  echo -e "Каталог RecentDocuments: ${color}$userrdoc${ncolor}"
     else
  echo -e "Каталог RecentDocuments: пуст"
    fi;
    else
  userrdoc="4,0K"
  echo -e "Каталог RecentDocuments: не обнаружен"
  fi;

  #Кеш urpmi
  urpmicache=$(du -chs /var/cache/urpmi/partial /var/cache/urpmi/rpms | awk '{ print $1 }' | tail -1)
  if [ "$urpmicache" != "8,0K" ]; then
  echo -e "Кеш менеджера пакетов urpmi: ${color}$urpmicache${ncolor}"
  else
  echo -e "Кеш менеджера пакетов urpmi: пуст"
  fi;

  #Кеш Mozilla Firefox
  if [ -d "/home/$USER/.cache/mozilla" ]; then
  mozcache=$(du -sh /home/$USER/.cache/mozilla | awk '{ print $1 }')
  echo -e "Кеш браузера Mozilla Firefox: ${color}$mozcache${ncolor}"
  else
  echo -e "Кеш браузера Mozilla Firefox: нет"
  fi;

  #Кеш Google Chrome
  if [ -d "/home/$USER/.cache/google-chrome" ]; then
  chromecache=$(du -sh /home/$USER/.cache/google-chrome | awk '{ print $1 }')
  echo -e "Кеш браузера Google Chrome: ${color}$chromecache${ncolor}"
  else
  echo -e "Кеш браузера Google Chrome: нет"
  fi;

  #Кеш Opera
  if [ -d "/home/$USER/.cache/opera" ]; then
  operacache=$(du -sh /home/$USER/.cache/opera | awk '{ print $1 }')
  echo -e "Кеш браузера Opera: ${color}$operacache${ncolor}"
  else
  echo -e "Кеш браузера Opera: нет\n"
  fi;

  echo "------------------------------------------------"
  echo "Продолжить - Enter, иначе Ctrl+C..."
  read a

#Проверяю, есть ли что чистить, или - выход
proverka="${kernel}${trash}${usertmp}${urpmicache}${mozcache}${chromecache}${operacache}${userrdoc}"
if [ "$proverka" = "4,0K4,0K8,0K4,0K" ];  then
exit 0
fi;

#Блок очистки--------------------------------------------
clear
#Если есть ядра на удаление - удаляю
  if [ -n "$remkernel" ]; then
  echo "Удаляю старые ядра, ждите..."
  /usr/sbin/urpme $remkernel
  fi;

#Очищаю корзину
  if [ "$trash" != "4,0K" ]; then
  echo -en "Очищаю корзину пользователя... "
  rm -rf /home/$USER/.local/share/Trash/*
  echo -e "${color}завершено${ncolor}\n"
  fi;

#Очищаю временные файлы пользователя
  if [ "$usertmp" != "4,0K" ]; then
  echo -en "Очищаю временные файлы пользователя... "
  rm -rf /home/$USER/tmp/*
  echo -e "${color}завершено${ncolor}\n"
  fi;
 
#Очищаю временные файлы пользователя RecentDocuments
  if [ "$userrdoc" != "4,0K" ]; then
  echo -en "Очищаю файлы пользователя RecentDocuments... "
  rm -rf /home/$USER/.local/share/RecentDocuments/*
  echo -e "${color}завершено${ncolor}\n"
  fi;

#Если кеш urpmi <> 8,0K - очищаю
  if [ "$urpmicache" != 8,0K ]; then
  echo -en "Очищаю кеш urpmi... "
  /usr/sbin/urpmi --clean;
  echo -e "${color}завершено${ncolor}\n"
  fi;

#Очищаю кеш Mozilla Firefox
  if [ -n "$mozcache" ]; then
  echo -en "Очищаю кеш браузера Mozilla Firefox... "
  rm -rf /home/$USER/.cache/mozilla
  echo -e "${color}завершено${ncolor}\n"
  fi;

#Очищаю кеш Google Chrome
  if [ -n "$chromecache" ]; then
  echo -en "Очищаю кеш браузера Google Chrome... "
  rm -rf /home/$USER/.cache/google-chrome
  echo -e "${color}завершено${ncolor}\n"
  fi;

#Очищаю кеш Opera
  if [ -n "$operacache" ]; then
  echo -en "Очищаю кеш браузера Opera... "
  rm -rf /home/$USER/.cache/opera
  echo -e "${color}завершено${ncolor}\n"
  fi;

#Завершаю очистку
  echo "------------------------------------------------"
  echo "Очистка завершена. Выйти - Enter или Ctrl+C"
  read a

53 (2017-06-30 07:20:17 отредактировано ingvaro)

Хочу поздравить.  Ваш подход оказался правильным.
Действительно ! Имя активного ядра должно браться из базы rpm, а не составляться вручную
Только формат непривычный.  Но rpm его принимает :

kernel-desktop-4.9.34-4.mga6-1-1.mga6

Но все же сделал правку :

remkernel=$(rpm -qa --qf '%{name} %{installtime}\n  ....

На работе это не сказалось и  urpmi , при работе, выводит в логах полный фомат.
Но сервисная инфа стала в привычном виде :

kernel-desktop-4.9.34-4.mga6

2)

alex_q_2000⇓ пишет:

Требуется этот "devel" исключить из выборки удаляемых ядер, ибо devel - это зависимость, которую Вы отобразили в общем списке установленных ядер и разбираться с ней с помощью --nodeps. Чтобы теперь исключить devel из списка ядер на удаление - нужно добавить grep -v "devel" перед ... | grep -v "latest" в стр. 23.

grep -v "devel  -  удалял все devel в т ч и активное.
Но все решилось на вашем новом варианте скрипта.

Но только из  старых ядер на удаление попал  :

kernel-desktop-devel-4.9.34-4.mga6

Решения нашлось целых два :

Spoiler

   1.   

remkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | grep -v "latest" | sort -nk 2 | sed '$d' | sed '$d'| awk '{ print $1 }')

  2.

  #Просматриваю все установленные ядра и сортирую их по времени Unix сверху вниз. Внизу - самое свежее
 allkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | sort -nk 2 | awk '{ print $1 }')

#Выделяю имя самого свежего ядра
actkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | \
  grep -v "devel" | grep -v "latest" | sort -rnk 2 | awk '{ print $1 }' | head -n 1)

 actkerneld=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype-devel" | \
 grep -v "latest" | sort -rnk 2 | awk '{ print $1 }' | head -n 1)   
  
#Выделяю ядра для удаления. Сортирую по времени Unix, исключаю latest и последнюю строку с имененм активного, т.е. самого свежего ядра
remkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | grep -v "latest"  grep -v "$actkernel" | grep -v "$actkerneld" |   awk '{ print $1 }')

Оба рабочие. Но выбрал второе, т к оно понятнее.  Т к  что значит  sed '$d я не нашел. И почему дублирование дает нужный эффект непонятно.
Но оба работают.

3)  Установил все три типа ядра для стр :

ktype="(desktop|server|linus)"

Почему то при активном ядре desktop скрипт выбрал linus
Ну вероятно потому что он последний.
Сделал определение активного ядра :

Spoiler
echo $(uname -r) > /tmp/active-kernel
for i in linus server desktop
do
#echo $i
grep -rnw /tmp/active-kernel -e "$i" > /tmp/active-k
[ -s /tmp/active-k ] && type=$i && echo -e ${ncolor}"type="${color}$type
rm -rf /tmp/active-k
done
rm -rf /tmp/active-kernel
#Просматриваю все установленные ядра и сортирую их по времени Unix сверху вниз. Внизу - самое свежее
allkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | sort -nk 2 | awk '{ print $1 }')

#Выделяю имя самого свежего ядра
actkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$type" | \
  grep -v "devel" | grep -v "latest" | sort -rnk 2 | awk '{ print $1 }' | head -n 1)

 actkerneld=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$type-devel" | \
 grep -v "latest" | sort -rnk 2 | awk '{ print $1 }' | head -n 1)   
  
#Выделяю ядра для удаления. Сортирую по времени Unix, исключаю latest и последнюю строку с имененм активного, т.е. самого свежего ядра
remkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | grep -v "latest" | grep -v "$actkernel" | grep -v "$actkerneld" |   awk '{ print $1 }')

Теперь все работает.  Обновляю ядро.  Запустил mageia-cleaner
И что особо приятно скрипт предлагает удалить старое ядро.
Удаляю перезагружаюсь и все !!!
Новая жизнь с новым ядром.

4)  Подумал, что надо чистить не только активного пользователя, но и root
Часто запускаю dolphin  с root-идентефикацией и /root то же надо чистить.
5) навел красоту. Может зря но вроде красивее стало.
6) В Магее присутствует чистильщик  BleachBit
  Только вот старые ядра он  не чистит  !!!

Если установить desktop, server, linus то моя версия скрипта оставит активное ядро а другие удалит
mageia-cleaner-ingvaro-edition-7.tar.gz     -      https://cloud.mail.ru/public/4wXY/EMZAsuWbu

Да там есть clear.sh
Вроде как чистит свободное место диска от мусора. Т е записывает его нулями
Но сам диск надо задавать в скрипте.
Это до конца не проверено, но систему не портит

54

ingvaro пишет:

Т к  что значит  sed '$d я не нашел.

sed '$d' file.txt Удаляет последнюю строку...

Mageia6, KDE, LXQt, x86_64.
Человек человеку - волк, а зомби зомби - зомби!

55

Спасибо за пояснения.
Но все равно. Кто его знает какие будут последние строки
Так что 2 вариант правки вроде лучше

56 (2017-07-09 15:55:26 отредактировано alex_q_2000)

ingvaro⇓ пишет:

Новая жизнь с новым ядром.

Это хорошо. С почином Вас! ))
А в mageia-live-cleaner (live-remaster) я запихал вот такую конструкцию:

Spoiler
#Берём путь, включая пробелы
workdir="$(pwd)"

#Узнаю тип активного ядра
for ktype in "server" "linus" "desktop"; do
 if [ -n "$(echo $(uname -r) | grep $ktype)" ]; then break; fi;
done;

#Выделяю имя самого свежего ядра
actkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | \
grep -v "devel" | grep -v "latest" | sort -nk 2 | awk '{ print $1 }' | tail -n 1)

#Сигнатура активного ядра: только цифры из названия пакета [5972635411425431]
signature=$(echo $actkernel | sed 's/[^0-9]//g')

#Просматриваю все установленные ядра (кроме latest) и сортирую их по времени Unix сверху вниз. Внизу - самое свежее
allkernel=$(rpm -qa --qf '%{name} %{installtime}\n' | grep -E "^kernel-$ktype" | \
grep -v "latest" | sort -nk 2 | awk '{ print $1 }')

#Выгружаю для анализа по сигнатуре в файл
echo "$allkernel" > "$workdir/remkernel"

#Если строка содержит сигнатуру - убираю её из общего списка ядер
while read LINE; do
 if [[ $(echo $LINE | sed 's/[^0-9]//g') -eq $signature ]]; then
  sed -i "/$LINE/d" "$workdir/remkernel";
 fi;
done < "$workdir/remkernel"

#Загружаю в переменную список оставшихся, т.е. - удаляемых ядер
remkernel=$(cat "$workdir/remkernel")
#Удаляю файл списка удаляемых ядер
rm -f "$workdir/remkernel"

Суть в том, что активные ядра desktop/etc и devel имеют одинаковый набор цифр в своих именах. Выделяя их, получаем некую сигнатуру (последовательность, фрагмент), которая является общей для их определения в групповом списке всех ядер (без latest). Исключаем строки по этой сигнатуре и получаем список ядер на удаление, включая devel.

[UPD 09.07.2017] ...или ещё короче, избавляясь от вывода в файл и рассматривая $allkernel, как массив. В общем, тут можно много вариантов наваять... ))

Spoiler
#Узнаю тип активного ядра
for ktype in "server" "desktop" "linus"; do
 if [ -n "$(echo $(uname -r) | grep $ktype)" ]; then break; fi;
done;

#Просматриваю все установленные ядра (кроме latest),сортирую по времени Unix сверху вниз
allkernel=$(rpm -qa kernel-$ktype* --qf '%{name} %{installtime}\n' | \
grep -v "latest" | sort -nk 2 | awk '{ print $1 }')

#Выделяю имя самого свежего ядра (исключаем devel, latest исключен выше)
actkernel=$(echo "$allkernel" | grep -v "devel" | tail -n 1)

#Узнаю cигнатуру активного ядра: только цифры из названия
signature=$(echo $actkernel | sed 's/[^0-9]//g')

#Начитываю $remkernel из $allkernel, исключая активные по сигнатуре
for i in ${allkernel[@]}; do
  if [[ $(echo $i | sed 's/[^0-9]//g') -ne $signature ]]; then
    remkernel=$(echo $remkernel $i | sed 's/ /\n/g') #пробелы > перевод строки
  fi;
done;

Кстати, пока тестировал Live-Remaster GUI, случайно обновил все образы в хранилище. В результате из LXQt при инсталляции с Рабочего Стола в режиме Live, исчезло предупреждение "daemon inhibition". Ещё пришлось добавить gvfs, поскольку злые дядьки-девелоперы как обычно не доложили ведро для мусора. Всё время так и норовят чего-нибудь спереть из системы.

С уважением,
alex_q_2000

57 (2017-07-21 10:52:42 отредактировано ingvaro)

chroot2xzm

Решил попробовать  urpm2xzm от МагОС.
Она скачивает пакеты и сразу  пакует в xzm-модуль. Вроде все и работает, но urpm2xzm  некорректно работает с rpm-базой.
Решил попробовать вставить  режим запуска на  chroot   и в итоге получилась  chroot2xzm
chroot2xzm-mga6.zip -  https://cloud.mail.ru/public/4wXY/EMZAsuWbu

1)   chroot2xzm.sh

Spoiler

При старте проверяет наличие нужных  пакетов

Папки мотирования aufs-диска

- root_br=$AUT_mount/wiz_fly_rootfs         ;   Это наша система. Все что устанавливается попадает сюда
- mod_br=$root_br-rw                                     :   Это сделанные  изменения системы. Очень удобная папка.
  Установил допустим пакет или запустил какой то сервис и в mod_br  сотришь что получилось
MOD_xzmt      -  Куда монтируются .
В МагОС можно монтировал
- MOD_xzm=/memory/tmp

Будет запущен  режим chroot.
Откроется терминал.
Здесь можно обновиться, работает drakrpm и т д
Выход. В  терминале набрать  exit

После выхода  chroot  пакуется root_br или mod_br в зависимости от настроек

3)  umount-disk.sh

Отмонтирует папку root_br .

5)    diskcfg
Здесь можно настроить режим работы.

Spoiler

#MOD_xzm=/mnt/live/tmp
root_br=$MOD_xzm/wiz_fly_rootfs
mod_br=$root_br-rw
mount_br=$mod_br
#-----------------------
#Для MagOS
#-----------------------
mod_path=/memory/bundles
NAME=??
#NAME=00
MODULEFORMAT=xzm
#
xzm_br=$mod_br
#xzm_br=$root_br
#
xzm_name=XXX
#-----------------------
#Для distrib-lzma.sqfs
#-----------------------
#NAME=distrib-lzma
#mod_path=/mnt/mychroot
#MODULEFORMAT=sqfs
#xzm_br=$mod_br
#xzm_br=$root_br


5)   папка  aufs-install
Здесь  мой установщик пакетов  и установщик загрузчика UIRD
Мой установщик пакетов  сделан на базе маговского
Дополнительно накидал  различные drak
Все попадает в /tmp/aufs-install
После запуска chroot там из терминала можно многое запустить.

6)  Загрузчик  UIRD

Последний вариант загрузчика  UIRD от МагОС адаптированный для Магеи.
Изменения все так, по мелочи.
Основной код работает

Настройки для загрузки distrib-lzma.sqfs :

#Для distrib-lzma.sqfs
#-----------------------
NAME=distrib-lzma
mod_path=/mnt/mychroot
MODULEFORMAT=sqfs
xzm_br=$root_br

И закоментировать раздел Для MagOS

58

С выходом Mageia 6-финальная, разработчики изменили правила создания Live-образов. Теперь МЕТКА (LabelDVD) должна соответствовать некой маске Mageia-*-*-LiveDVD (регистр символов и последовательность обязательны).

Cтрокa (64) из /usr/sbin/draklive-install:

my $live_media = 'Mageia-*-*-LiveDVD'; # match disk label for Mageia Live ISOS

Например, Mageia-6-LXQt-LiveDVD, Mageia-6-LXDE-LiveDVD, Mageia-6-MATE-LiveDVD etc. При выгрузке финального образа из Live-Remaster, именование архитектуры и дата добавляются автоматически. В результате название финального образа будет МЕТКА + АРХИТЕКТУРА + ДАТА.iso. Например: Mageia-6-MATE-LiveDVD-x32-190717.iso, Mageia-6-LXDE-LiveDVD-x64-210920.iso и т.д. Само название ISO (НЕ МЕТКА) может быть любым.

Live-Remaster, пресеты и сборки в хранилище обновлены.

С уважением,
alex_q_2000

59 (2017-08-04 11:57:00 отредактировано ingvaro)

alex_q_2000⇓ пишет:

LIVE-REMASTER работает непосредственно с исходным образом ISO
-----------------------------------------------------------------
а) Скрипты предназначены для ремастеринга готовых Live-образов Linux Mageia 5+
б) Все действия выполняются с привилегиями root

Как работать со скриптами:
-----------------------------------------------------------------
1. Зайдите в консоль под root

В live-remaster это надо запустить рабочий стол под root?
Или можно зайти под обычным юэером и запустить chroot из root-терминала

Дело в том, что мой   chroot2xzm  видит  сеть, только когда вхожу в систему как root

60

ingvaro⇓ пишет:

Или можно зайти под обычным юэером и запустить chroot из root-терминала

Ага. В чруте, помню, dns сервера ещё прописывал, чтобы в инет попасть. DrakConnect опять же имеется или echo "nameserver 8.8.8.8" > /etc/resolv.conf Или я не про то?

61 (2017-08-04 21:48:31 отредактировано ingvaro)

Что то я неудачно задал вопрос.

alex_q_2000⇓ пишет:

LIVE-REMASTER работает непосредственно с исходным образом ISO
-----------------------------------------------------------------
а) Скрипты предназначены для ремастеринга готовых Live-образов Linux Mageia 5+
б) Все действия выполняются с привилегиями root

Как работать со скриптами:
-----------------------------------------------------------------
1. Зайдите в консоль под root

Как вы заходите в консоль под root ?

Я в chroot2xzm  устанавливаю сеть :

cp -r /etc/resolv.conf $root_br/etc
cp -r /etc/sysconfig/network-scripts/ifcfg-* $root_br/etc/sysconfig/network-scripts

где $root_br - папка монтирования chroot

И сеть поднимается, если я вхожу в систему как root и далее просто запускаю  свой chroot2xzm
При запуске   chroot2xzm  под обычным пользователем с правами root    сети нет

62

ingvaro⇓ пишет:

Как вы заходите в консоль под root ?

запускаю консоль под юзером, затем через su-пароль, как обычно... я опять что-то не улавливаю ))

63 (2017-08-04 21:58:59 отредактировано ingvaro)

alex_q_2000⇓ пишет:

запускаю консоль под юзером, затем через su-пароль, как обычно...

Спасибо за ответ. Не поднимается у меня так сеть.
Если войду в систему как root, то все нормально.
Может это NetworkManager так работает.
Раз у вас все работает ,то попробую еще раз все проверить.

64 (2017-08-29 18:47:57 отредактировано ingvaro)

ingvaro⇓ пишет:

Запускал Mageia-6-LXDE-Live-x86_64 и к сожалению  и  в Магее 6 присутствует баг - https://forum.mageia.org.ru/viewtopic.p … 529#p15529
Баг не баг, но неприятно когда загрузка прерывается и черный экран

С радостью сообщаю, что этот баг исправлен. Все грузится нормально.
Т е моя правка уже не нужна

Спасибо сказали: Kamrad1

65 (2017-09-03 13:13:53 отредактировано alex_q_2000)

ingvaro⇓ пишет:

С радостью сообщаю, что этот баг исправлен. Все грузится нормально.
Т е моя правка уже не нужна

Это хорошо, ingvaro.

Попутно обновились cборки в хранилище и Live-Remaster-GUI
upd: исправлен environment

Напоминаю, что сборки голые, без софта. Собираются они для тестирования работы Mageia Linux в разных DE. Пригодны для установки на комп и редактирования в Live-Remaster-GUI. Перед редактированием требуется обновить ОС, в которой запущена сборочная. Финальная очистка от старых ядер и сирот производится консольным вариантом SnappyCleaner (инструментарий в папке /presets/zero-live-tools/snappy-cleaner-live в chroot).

Live-Remaster-GUI уже содержит в своём составе обновленный live-remaster (консольный). Для обновления установленной версии достаточно удалить папку со старым GUI, распаковать на её место обновлённую и при запуске StartAsRoot нажать кнопку "Install ^ Update". Именно так производится обновление самого Live-Remaster-GUI и консольной части, всё просто.

Разрядность сборочной должна соответствовать разрядности изменяемого образа. В сборочной Mageia6 можно обновлять/собирать образы Mageia5. Обновление сборок выполняется в chroot обычными командами urpmi --auto --auto-update, пресеты создавать не обязательно. Зеркала с пакетами уже зашиты в исходных сборках, которые выложены в хранилище. В качестве сборочной рекомендую использовать легковесные варианты ОС, например с MATE. Поддерживаются mate-terminal, gnome-terminal и lxterminal. В случае использования, например LXQt, программа попросит установить lxterminal.

p.s. ingvaro, может поместить мне в эту же тему (на первой странице) ссылки на образы по Вашей технологии, чтобы в одном месте всё было? А то я тут один чего-то всё публикую, как куркуль. Только сами их будете поддерживать, если у кого вопросы будут. Что скажете?

С уважением,
alex_q_2000

66 (2017-09-03 13:07:00 отредактировано ingvaro)

alex_q_2000⇓ пишет:

p.s. ingvaro, может поместить мне в эту же тему (на первой странице) ссылки на образы по Вашей технологии, чтобы в одном месте всё было? А то я тут один чего-то всё публикую, как куркуль. Только сами их будете поддерживать, если у кого вопросы будут. Что скажете?

1) Ну технология, т е скрипт chroot2xzm, от МагОС. Я лишь запустил исходный скрипт  на chroot, немного упростил его, что бы запускать без утилит - /usr/lib/magos/scripts,  и приспособил ее для пакования диска с установленной системой и для смонтированного distrib-lzma.sqfs
Если присутствуют утилиты - /usr/lib/magos/scripts, то он работает с ними.

Для порядка сделал сообщение на МагОС - http://www.magos-linux.ru/index.php?opt … =55#p18562
Но как то особо не отреагировали.
Но у них сейчас пишется  PFS UTILS - http://www.magos-linux.ru/index.php?opt … =55#p18196
Видимо не до этого или не особо нужен.

И Live-Remaster-GUI  он предназначен для запуска установленной системы.
А chroot2xzm все таки больше для модульной системы. Из установленной системы не запускал и не проверял.
Т е все еще проверять надо, но конечно  много модулей, на  штатно установленной системе, сделать на chroot2xzm будет сложновато.
Только сегодня устранил последнюю заморочку при запуске Магеиа 6 с загрузчиком UIRD.
У меня не работал тачпад  на нетбуке - https://forum.mageia.org.ru/viewtopic.p … 247#p23247
Сейчас все работает.

2) У себя я уже сделал отдельное меню для запуска distrib-lzma.sqfs.
Из всего многообразия рабочих столов пока меня интересует  KDE + LXQt, т к для KDE есть, для правой кнопки мышы, контекстное меню, для работы с утилитами /usr/lib/magos/scripts
Это сильно облегчает жизнь в модульной системе. Для других раб-столов еще делать надо.
Пока мне непонятно как и где это делается.
Смотрел ваш Mageia-6-LXQt-LiveDVD-x64-020917.iso
Два замечания :
-  ~/etc/sysconfig/harddrake2
  В нем пакеты:

Spoiler

- /etc/sysconfig/harddrake2/kernel.rpmsave
- /etc/sysconfig/harddrake2/previous_hw.rpmsave

А должно быть :

- /etc/sysconfig/harddrake2/kernel
- /etc/sysconfig/harddrake2/previous_hw
- /etc/sysconfig/harddrake2/service.conf

- файлы :
/release-notes.html и /release-notes.txt

Не принципиально, но что они делают в корне системы
Я бы расположил в /usr/share/applications и из меню уже можно было бы запускать.

3) На сколько все проще в многомодульной системе. Если что то добавил модуль с обновлениями и все и не надо перепаковывать.
Но добиваться многомодульности на магеевском LiveDVD это уже наверно к  AlexL
На скриптах от МагОС, адаптированных для Магеи 6 distrib-lzma.sqfs я уже  запустил.
Конечно на неделе потестирую еще, т к мало ли что. Но первые впечатления хорошие.

4) В принципе можно взять мне ваш Mageia-6-LXQt-LiveDVD-x64-020917.iso да наделать модули к нему.
И насколько все упростится. !!!

5) Где расположить.
LiveDVD - это все же модульный дистрибутив. То что модуль только один это ничего не меняет
Так что лучше всего наверно здесь - https://forum.mageia.org.ru/viewforum.php?id=22

alex_q_2000⇓ пишет:

Только сами их будете поддерживать, если у кого вопросы будут. Что скажете?

Если знаю, то всегда стараюсь отписаться и помочь
Вот если не знаю, то сложнее....

67

ingvaro⇓ пишет:

Два замечания :
-  ~/etc/sysconfig/harddrake2

Честно говоря, не обращал внимания, сорри. ))) Ваш подход (метод), он кажется мне более "глубоким" что ли. Нужно ясно представлять, что делаешь, что от чего зависит и т.д. Напротив, задача GUI - максимально упростить "распил" того, что нам приготовили наши старшие товарищи и по возможности с минимальным вмешательством. )) Здесь, правда возникает относительная сложность с написанием пресЕта, поскольку всё упирается в правильное название основных пакетов. Но ведь под рукой всегда основная система, где есть доступ к этой информации.

Консольный live-remaster уже не актуален и мой "хомпэйдж" )) нужно бы переделать. Можно было бы 2 ветки в одной теме вести совместно, всё одно они где-то пересекаются. А здесь я публиковал из соображений "программирования" и в то время не обратил внимания на отдельный раздел. Ещё подумал: "Модульные дистрибутивы? Что за..?", полазил по нему и не пошёл. Да и правки в софте нужно как-то увязывать со сборкой одновременно, а то и сам забуду, что делал. Тут удобнее.

Ну если надумаете, - всегда добро пожаловать!

С уважением,
alex_q_2000

68 (2017-09-05 14:25:36 отредактировано ingvaro)

alex_q_2000⇓ пишет:

Напротив, задача GUI - максимально упростить "распил" того, что нам приготовили наши старшие товарищи и по возможности с минимальным вмешательством. )) Здесь, правда возникает относительная сложность с написанием пресЕта, поскольку всё упирается в правильное название основных пакетов. Но ведь под рукой всегда основная система, где есть доступ к этой информации.

Все таки при удалении пакетов могут остаться "сироты" и т п
Надо быть знать систему, да и вручную удалять проблематично.
Я начинал с этого. Установил Магею и чистил ее от машинно-зависимых файлов.
Но времени всегда не хватает, что нибудь да забудешь сделать.
И часто два или даже три раза переделывал. Ну не немец я . Нет этой аккуратности.
Ну с многмодульной системой можно всегда добавить модуль-пач, а с LiveDVD надо быть предельно аккуратным, т к модуль только один.
Сейчас опробовал делать так :

- Устанавливаю штатным магеевским инсталятором систему в минимальной конфигурации на диск, но не запускаю ее

Spoiler

Когда удаляешь то надо решать вопрос нужно ли это.
На этот вопрос мне порою трудно ответить
Т к порою нет инфы о системе, особенно в Магее, да и опыт весьма средний.
Так что , на мой взгляд, надежнее установить систему в самой минимальной конфигурации, т е то без чего не обойтись при установке пакетов.
А потом уже из системы добавлять нужные пакеты.
У меня допустим
рабочий стол - icewm
файловый менеджер - mc

ps ; icewm неплохой рабочий стол. Что ему скажешь, то и делает. Допустим lxde норовит то заснуть то вообще отключиться
Победить эту болезнь не смог. Так что остался icewm
Но может использовать LXQt ?
Но может кому то он не нравится.

- Далее запускаю  в chrott2xzm полученный диск, добавляю пакеты, редактирую, и пакую в модуль 00-имя_модуля.xzm
Разницы между модулем  *.xzm и *.sqfs вроде нет. По крайней мере так мне объяснили

- Дальше делаю сборку с полученным 00-имя_модуля.xzm
- Запускаю систему
- Запускаю опять же chroot2xzm и добавляю модули.
  Пакеты устанавливаю  на inst-Mageia-5-6-MagOS - https://cloud.mail.ru/public/6c1z/qHug6fYfS
  Это список пакетов из сборочной от МагОС и адаптированный для Магеи 5 и Магеи 6
- Перезагружаюсь и все !!  Сборка готова.

Не все конечно пока гладко. Что то чистить надо вручную
Но самое главное все делает Магея.
Особо хочу отметить режим chroot
Пока одни восторги. Вся система на chroot, а большинство машинно-зависимых файлов на основной системе.
На Магее 6 сделал сборку для Магеи 5. Т е на chroot  вроде можно на одной системе  делать сборки для других систем.

В принципе можно сделать свой distrib-lzma.sqfs для LiveDVD
Когда будут проверены списки пакетов в inst-Mageia-5-6-MagOS тогда можно думать и о пакетной сборке.
Это как у МагОС.

alex_q_2000⇓ пишет:

Ваш подход (метод), он кажется мне более "глубоким" что ли. Нужно ясно представлять, что делаешь, что от чего зависит и т.д.

Это чистить установленную систему нужны знания системы  и опыт и все равно до конца не почистить.
А с chrott2xzm все упрощается. Все делается из системы. Пакеты устанавливает drakrpm

69 (2017-09-05 13:22:45 отредактировано ingvaro)

Установил на флэшку  Mageia-6-Plasma-LiveDVD
И решил было посмотреть что там в загрузчике  на флэшке : /boot/cdrom/initrd.gz
Распаковал а там как то и нет ничего

~/initrd/kernel
~/initrd/early_cpio

В штатно установленной Магее 6 то же самое
Так где же загрузчик ?
Нет ли инфы случайно ?

70

ingvaro⇓ пишет:

Распаковал а там как то и нет ничего

)) Инфы нет. Но в live-remaster (3-live-builder) вот такой код прилепил на случай обновления ядра:

#Заменяем ram-disk и ядро на самые свежие, если были обновления
initrd=$(find /mnt/mageia-root/boot -name "initrd-[0-9]*-*" -printf "%T@ %p\n" | sort -nrk1 | awk '{ print $2 }' | head -n1)
vmlinuz=$(find /mnt/mageia-root/boot -name "vmlinuz-[0-9]*-*" -printf "%T@ %p\n" | sort -nrk1 | awk '{ print $2 }' | head -n1)
if [[ -n "$initrd" && -n "vmlinuz" ]]; then
  cp -f $initrd /live-remaster/iso-tmp/boot/cdrom/initrd.gz
  cp -f $vmlinuz /live-remaster/iso-tmp/boot/vmlinuz
else
  echo -e "${color}Внимание! /mnt/mageia-root/boot: initrd или vmlinuz не обнаружен!"
  echo -e "Желательно выполнить обновление изменяемого образа в chroot!${ncolor}"
fi;

Физически они появятся после штатного обновления ядра. Как то так, видимо...

С уважением,
alex_q_2000

71 (2017-09-05 14:30:32 отредактировано ingvaro)

Меня то интересует содержимое  /boot/cdrom/initrd.gz
Т е просто распаковать его
Есть мелкие проблемы с загрузкой.
Так думал посмотреть как в Магее это решено

72 (2017-09-05 16:15:52 отредактировано alex_q_2000)

ingvaro⇓ пишет:

Меня то интересует содержимое  /boot/cdrom/initrd.gz

А в поисках чего именно?

upd
Это я к тому спросил, что до Mageia5, помню, initrd приходилось лопатить в поисках LABEL ISO и править, если она менялась (в linuxrc). Я сразу заниматься этим передумал: распаковать/смонтировать - это одно, а ещё же запаковывать нужно. Вот с этим у меня не задалось. Cейчас они сделали, как у людей и метка лежит в конфигах. Вот фрагмент из того же 3-live-builder:

#Начитываем метку (oldvol) из файла конфигурации Live [isolinux.cfg] и заменяем на новую
oldvol=$(cat ./iso-tmp/isolinux/isolinux.cfg | grep "LABEL=" | tail -1 | awk -F " " '{print $3}' | awk -F ":" '{print $2}' | awk -F "=" '{print $2}')

#Узнаём метку будущего DVD, она же - метка distrib-lzma.sqfs при монтировании live
vol=$(head -n 1 ./DVD-VOLUME-ID);
if [ ! $vol ]; then
 echo "Метка в файле ./DVD-VOLUME-ID отсутствует, беру из исходного образа..."
 if [ ! $(ls -A ./iso-in) ]; then
  echo "Отсутствует файл исходного Live-образа ./iso-in/*.iso"
  echo "---"
  echo -e ${color}"Продолжение - Enter..."${ncolor}
  read a;
  exit;
 fi;
 vol=$(isoinfo -d -i ./iso-in/*.iso | grep "Volume id:" | cut -c 12-);
fi;

#Заменяю метку в исходных файлах на метку в файле ./DVD-VILUME-ID
 sed -i s/$oldvol/$vol/g ./iso-tmp/boot/cdrom/syslinux.cfg
 sed -i s/$oldvol/$vol/g ./iso-tmp/isolinux/isolinux.cfg
 if [ -d ./iso-tmp/EFI ]; then
 sed -i s/$oldvol/$vol/g ./iso-tmp/EFI/BOOT/grub.cfg
 fi;

Но, походу, Вам что-то другое нужно от initrd.gz

73 (2017-09-05 19:06:32 отредактировано ingvaro)

.

alex_q_2000⇓ пишет:

Но, походу, Вам что-то другое нужно от initrd.gz

Определение видеосистемы на Магее работает иначе, чем у меня. Т е загрузчик UIRD+Магея+МагОС
На Магее  стартует минимальное разрешение, загружается ядро определяется видеосистема и разрешение устанавливается оптимальное, для данного монитора

   У меня же если стартует минимальное разрешение монитора, то оно так и остается минимальным, если не задать предварительно  другое.
На нетбуке система корректно стартует только с минимальным разрешением. Если задать другое разрешение при старте, то на клавиатуре клавиши залипают и не работает тачпад. С минимальным разрешением все ОК
Что то не так с определением видеосистемы. Просто хочу посмотреть как там сделано у Магеи, что бы не изобретать велосипед
Распаковал initrd.gz а он вообще пустой.

74 (2017-09-11 14:49:27 отредактировано alex_q_2000)

ingvaro⇓ пишет:

Распаковал initrd.gz а он вообще пустой.

urpmi binwalk
binwalk initrd.gz

Показывает, что там есть куча каких-то модулей. Взято здесь. Дальше не разбирался. Может пригодиться...
И вот здесь ещё. Это какой-то волшебный формат имиджа - uImage...

75 (2017-09-11 14:45:43 отредактировано alex_q_2000)

Добавлены сборки Cinnamon:
-----------------------------------------------
Mageia-6-CNMN-LiveDVD-x32-110917.iso
Mageia-6-CNMN-LiveDVD-x64-110917.iso