манипуляции в chroot после обновления ядра
манипуляции в chroot после обновления ядра
когда обновляются ядра в chroot какие манипуляции c ядром нужно проводить? когда urpme --auto-orphans не удаляет старые ядра из /boot/. update-grub2 показывает что все нормально. а uname-a показывает старое ядро. dracut -f ничего не выкидывает, а вот при загрузке в live uname -a показывает старое ядро. а dracut -f ругается что нет ядра в /lib/moules/ и правильно нет, там новое ядро, и предлагает dracut-install: ERROR: installing `=drivers/gpu/drm` В установленной системе таких проблем не вижу, а вот в chroot вроде все те же команды работают, а получается ерунда не могу от пресловутого ядра 4.9.20 избавиться. вычистить так чтобы система об нем забыла.
какая команда заменяет в росе update-initramfs -cv -k all ?
какая команда заменяет в росе update-initramfs -cv -k all ?
Re: манипуляции в chroot после обновления ядра
А что именно хочется сделать? Зачем понадобилось менять ядро в chroot? При сборке образа, разве что?
Если нужно собрать образ с нужным ядром теми средствами, что в проектах вроде build_plasma5_desktop_ee есть, то достаточно:
* прописать репозитории с этим ядром в x86_64repo.lst и i586repo.lst
* убрать из списка пакетов в common*.lst kernel-nrj-desktop-4.9-latest и kernel-nrj-desktop-4.9-devel-latest, а вместо них добавить -latest пакеты для нужных версий ядра.
Тогда ядра 4.9 в образе не будет, а будет то, которое указали.
Если нужно собрать образ с нужным ядром теми средствами, что в проектах вроде build_plasma5_desktop_ee есть, то достаточно:
* прописать репозитории с этим ядром в x86_64repo.lst и i586repo.lst
* убрать из списка пакетов в common*.lst kernel-nrj-desktop-4.9-latest и kernel-nrj-desktop-4.9-devel-latest, а вместо них добавить -latest пакеты для нужных версий ядра.
Тогда ядра 4.9 в образе не будет, а будет то, которое указали.
Re: манипуляции в chroot после обновления ядра
Беру оригинальный образ (он не обновленный) сую в chroot, urpmi --auto-update, (ядро обновляется с 20 на 41), urpme --auto-orphans, daracut -f, update-grub2. записываю на флешку, а в результате получается вот такая хрень. Хочу обновленный дистрибутив, чтоб не качать обновления при установке на ПК. В Live получается такая хрень, система не забыла про 20 ядро, получается что я в chroot что то делаю не так. Если установить с оригинального образа сразу провести обновления то проблем нет.
это на рабочей системе:
dracut /boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img $(uname -r)
dracut: Will not override existing initramfs (/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img) without --force
это на рабочей системе:
dracut /boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img $(uname -r)
dracut: Will not override existing initramfs (/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img) without --force
Re: манипуляции в chroot после обновления ядра
не понимаю dracut ищет то чего в системе для ядра отсутствует, или не подключено?
а это про ядро:
dracut: Stored kernel commandline:
dracut: No dracut internal kernel commandline stored in the initramfs
dracut: *** Creating image file '/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img' ***
dracut: *** Creating initramfs image file '/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img' done ***
что за хрень?
а это про ядро:
dracut: Stored kernel commandline:
dracut: No dracut internal kernel commandline stored in the initramfs
dracut: *** Creating image file '/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img' ***
dracut: *** Creating initramfs image file '/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img' done ***
что за хрень?
Код: Выделить всё
dracut -vf
dracut: Executing: /usr/sbin/dracut -vf
dracut: dracut module 'bootchart' will not be installed, because command '/sbin/bootchartd' could not be found!
dracut: dracut module 'systemd-bootchart' will not be installed, because command '/lib/systemd/systemd-bootchart' could not be found!
dracut: dracut module 'busybox' will not be installed, because command 'busybox' could not be found!
dracut: dracut module 'multipath' will not be installed, because command 'multipath' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'dcbtool' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'fipvlan' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'lldpad' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'fcoemon' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'fcoeadm' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'dcbtool' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'fipvlan' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'lldpad' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsistart' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsi-iname' could not be found!
dracut: dracut module 'nbd' will not be installed, because command 'nbd-client' could not be found!
dracut: dracut module 'nfs' will not be installed, because command 'rpc.statd' could not be found!
dracut: dracut module 'nfs' will not be installed, because command 'mount.nfs' could not be found!
dracut: dracut module 'nfs' will not be installed, because command 'mount.nfs4' could not be found!
dracut: dracut module 'biosdevname' will not be installed, because command 'biosdevname' could not be found!
dracut: *** Including module: bash ***
dracut: *** Including module: dash ***
dracut: *** Including module: systemd ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: modsign ***
dracut: *** Including module: i18n ***
dracut: *** Including module: network ***
dracut: *** Including module: ifcfg ***
dracut: *** Including module: drm ***
dracut: *** Including module: plymouth ***
dracut: *** Including module: btrfs ***
dracut: *** Including module: crypt ***
dracut: *** Including module: dm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 60-persistent-storage-dm.rules
dracut: Skipping udev rule: 55-dm.rules
dracut: *** Including module: dmraid ***
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: kernel-network-modules ***
dracut: *** Including module: lvm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 56-lvm.rules
dracut: Skipping udev rule: 60-persistent-storage-lvm.rules
dracut: *** Including module: mdraid ***
dracut: Skipping udev rule: 64-md-raid.rules
dracut: *** Including module: cifs ***
dracut: *** Including module: resume ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: shutdown ***
dracut: *** Including module: union-mount ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies ***
dracut: *** Installing kernel module dependencies done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing AuthenticAMD.bin ****
dracut: *** Constructing GenuineIntel.bin ****
dracut: *** Store current command line parameters ***
dracut: Stored kernel commandline:
dracut: No dracut internal kernel commandline stored in the initramfs
dracut: *** Creating image file '/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img' ***
dracut: *** Creating initramfs image file '/boot/initrd-4.9.41-nrj-desktop-1rosa-i586.img' done ***
Re: манипуляции в chroot после обновления ядра
Эти сообщения можно игнорировать. dracut просто говорит, что такие-то его компоненты не установлены, поэтому при создании initrd использоваться не будут.banzay242 писал(а):не понимаю dracut ищет то чего в системе для ядра отсутствует, или не подключено?
Re: манипуляции в chroot после обновления ядра
Насчёт initrd в образе.
Чтобы при загрузке подмонтировать то, что видите в chroot'е, системе уже нужны ядро и initrd. Потому, те, что видны в chroot, при этом не используются, если не ошибаюсь. При загрузке в Live режиме берутся их копии из подкаталога isolinux в образе (initrd0.img, vmlinuz0).
Видимо, поэтому изменения initrd в chroot на загрузке образа никак не отразились. Попробуйте посте установки нового ядра и перегенерации initrd скопировать соотв. vmlinuz и initrd в каталог /isolinux в образе, переименовав в vmlinuz0 и initrd0.img. Посмотрите, как пойдёт.
Чтобы при загрузке подмонтировать то, что видите в chroot'е, системе уже нужны ядро и initrd. Потому, те, что видны в chroot, при этом не используются, если не ошибаюсь. При загрузке в Live режиме берутся их копии из подкаталога isolinux в образе (initrd0.img, vmlinuz0).
Видимо, поэтому изменения initrd в chroot на загрузке образа никак не отразились. Попробуйте посте установки нового ядра и перегенерации initrd скопировать соотв. vmlinuz и initrd в каталог /isolinux в образе, переименовав в vmlinuz0 и initrd0.img. Посмотрите, как пойдёт.
Re: манипуляции в chroot после обновления ядра
буду пробовать, благодарю!
Re: манипуляции в chroot после обновления ядра
скопировал переименовал не грузится
dracut: FATAL: don`t know how to handle `root=live:UUID=4A9A-AD62
dracut: Refusing to continue
dracut: System halted
dracut: FATAL: don`t know how to handle `root=live:UUID=4A9A-AD62
dracut: Refusing to continue
dracut: System halted
Re: манипуляции в chroot после обновления ядра
наверное простой подменой не получается, наверное надо смонтировать isolinux и какой командой установить туда эти файлы, в распаковоном виде эти файлы просто лежат в папке.
don`t know how to handle `root=live:UUID=4A9A-AD62 похоже isolinux просто не знает что с этим делать?
don`t know how to handle `root=live:UUID=4A9A-AD62 похоже isolinux просто не знает что с этим делать?
Re: манипуляции в chroot после обновления ядра
Нужно добавить пару модулей при генерации initrd. Для чего создаётся временная конфигурация dracut:
После создания initrd файл etc/dracut.conf.d/tmplive.conf удалить.
Всё это делается в chroot
Код: Выделить всё
# Временная конфигурация dracut
echo 'hostonly="no"' > /etc/dracut.conf.d/tmplive.conf
echo 'add_dracutmodules+=" dmsquash-live pollcdrom "' >> /etc/dracut.conf.d/tmplive.conf
echo 'omit_dracutmodules+=" aufs-mount "' >> /etc/dracut.conf.d/tmplive.conf
Всё это делается в chroot
Re: манипуляции в chroot после обновления ядра
initrd cоздается командой dracut -f я правильно понимаю? дальше update-grub2 exit.
и собираю образ.
и собираю образ.
Код: Выделить всё
#!/bin/sh
#
PWD=`pwd`/mnt
echo размонтируем dev sys proc resolv.conf
umount $PWD/dev
umount $PWD/sys
umount $PWD/proc
umount $PWD/etc/resolv.conf
echo очищаем свободное место
cp /dev/zero mnt/free_space 2> /dev/null
rm mnt/free_space
echo размонтируем mnt
umount $PWD
echo удаляем cd/LiveOS/squashfs.img
CD=cd/LiveOS/squashfs.img
rm $CD
echo создаем новый cd/LiveOS/squashfs.img
mksquashfs sys $CD
echo создаем свой iso
xorriso -as mkisofs \
-isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
-c isolinux/boot.cat \
-b isolinux/isolinux.bin \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e isolinux/efiboot.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-V ROSA.FRESH.LXQT.R9.i586 \
-o ROSA.FRESH.LXQT.R9.i586.uefi.iso \
cd
#echo создаем файл контрольной суммы md5sum.txt
#md5sum ROSA.FRESH.LXQT.R9.i586.uefi.iso > md5sum.txt
#echo чистим за собой
#rm -rf cd mnt sys
echo готово!
Re: манипуляции в chroot после обновления ядра
kernel panic natyncing: VFC unable to mount root fs on unknown -block (0,0)
- VictorR2007
- Сообщения: 7251
- Зарегистрирован: 12 сен 2011, 13:00
Re: манипуляции в chroot после обновления ядра
На самом деле после установки нового ядра не нужно менять никаких файлов.
Там всё просто.
Можно удалить старое ядро, а можно и оставить.
А в файле /rosa/mnt/boot/grub2/grub.cfg
нужно заменить версию со старого ядра на новое.
Во всяком случае я делаю так, когда делаю диск, как обсуждали в этой теме
http://forum.rosalab.ru/viewtopic.php?f=56&t=8526
Если ещё менять файлы в /rosa/cd/isolinux,
то будет ошибка.
Если просто исправить /rosa/mnt/boot/grub2/grub.cfg
то проблем нет.
Там всё просто.
Можно удалить старое ядро, а можно и оставить.
А в файле /rosa/mnt/boot/grub2/grub.cfg
нужно заменить версию со старого ядра на новое.
Во всяком случае я делаю так, когда делаю диск, как обсуждали в этой теме
http://forum.rosalab.ru/viewtopic.php?f=56&t=8526
Если ещё менять файлы в /rosa/cd/isolinux,
то будет ошибка.
Если просто исправить /rosa/mnt/boot/grub2/grub.cfg
то проблем нет.
Re: манипуляции в chroot после обновления ядра
может смонтировать образ установить syslinux из системы, а потом начать разбирать образ?
- VictorR2007
- Сообщения: 7251
- Зарегистрирован: 12 сен 2011, 13:00
Re: манипуляции в chroot после обновления ядра
А зачем, если всё равно нужно редактировать файл /rosa/mnt/boot/grub2/grub.cfgbanzay242 писал(а):может смонтировать образ установить syslinux из системы, а потом начать разбирать образ?
Если не вписать туда новое ядро, загрузчик всё равно его не увидит.
Образ нормально подхватывается с существующем syslinux,
потом подгружает загрузочный образ, указанный в /rosa/mnt/boot/grub2/grub.cfg,
Если не указывать новый, то загрузится со старым, если новый, то соответственно.
Re: манипуляции в chroot после обновления ядра
Правильно. Но - в таком виде будет создано initrd для той версии ядра, на котором запущена основная система.banzay242 писал(а):initrd cоздается командой dracut -f я правильно понимаю?
Потому либо передать в параметрах --kver с нужной версией (которая через время будут другая).
Либо не вызывать вовсе — это происходит автоматически при обновлении ядра.
Это лишнее. Ядро ведь при копировании переименовывается.banzay242 писал(а):дальше update-grub2
Скрипт у меня сейчас такой https://abf.io/st/rosa-pad/blob/master/rebuild_iso.sh
Но правильный способ Локальная_сборка_ISO
Re: манипуляции в chroot после обновления ядра
+1trs писал(а): правильный способ Локальная_сборка_ISO
Это вариант дольше, но надёжнее. У livecd-tools, которые для сборки используются, хватает своих тонкостей. Легко что-то сломать, если редактировать образ "мимо них".
Re: манипуляции в chroot после обновления ядра
в том то и болдово что в груб обновляется командой update-grub2. ядро 4.9.20 вылазит при установке с флешки, этого ядра уже нет даже в /boot/ grub.svg прописаны 4.9.41 а как дело доходит до разметки дисков, пишет что нет ядра 4.9.20 паника и все. только через резет.
Re: манипуляции в chroot после обновления ядра
cкрипт у меня не работает:trs писал(а):Правильно. Но - в таком виде будет создано initrd для той версии ядра, на котором запущена основная система.banzay242 писал(а):initrd cоздается командой dracut -f я правильно понимаю?
Потому либо передать в параметрах --kver с нужной версией (которая через время будут другая).
Либо не вызывать вовсе — это происходит автоматически при обновлении ядра.Это лишнее. Ядро ведь при копировании переименовывается.banzay242 писал(а):дальше update-grub2
Скрипт у меня сейчас такой https://abf.io/st/rosa-pad/blob/master/rebuild_iso.sh
Но правильный способ Локальная_сборка_ISO
sh update.sh
Обрабатывается ROSA.FRESH.LXQT.R9.i586.uefi.iso [Volume id: ROSA.FRESH.LXQT.R9.i586]
Распаковываем образ
Добавляем 32х разрядный EFI загрузчик
--2017-11-06 21:17:49-- http://abf-downloads.rosalinux.ru/rosa2 ... 1.i586.rpm
Распознаётся abf-downloads.rosalinux.ru… 195.19.76.242, 195.19.76.240
Подключение к abf-downloads.rosalinux.ru|195.19.76.242|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 400445 (391K) [application/x-redhat-package-manager]
Сохранение в: «shim-0.9-3-rosa2016.1.i586.rpm»
shim-0.9-3-rosa2016.1.i5 100%[=================================>] 391,06K 508KB/s за 0,8s
2017-11-06 21:17:50 (508 KB/s) - «shim-0.9-3-rosa2016.1.i586.rpm» сохранён [400445/400445]
cpio: unrecognized option '--directory=rpms'
Попробуйте указать `cpio --help' или `cpio --usage',
чтобы получить дополнительную информацию.
ошибка распаковки shim-0.9-3-rosa2016.1.i586.rpm
Re: манипуляции в chroot после обновления ядра
Локальная_сборка_ISO мне не подходит, у меня интернет лимитный мтс, скрипт не работает, systemd-nspawn -D тоже не работает, как согласовать syslinux c chroot пока не вижу. у всех все работает у меня нет, не пойму.
Re: манипуляции в chroot после обновления ядра
подскажите вот это может влиять?
это с самого файла:
kernel-headers
kernel-nrj-desktop-4.9-devel-latest
kernel-nrj-desktop-4.9-latest
kernel-nrj-desktop-4.9.20-1rosa-i586
kernel-nrj-desktop-devel-4.9.20-1rosa-i586
может базы rpm просто обновить как то надо?
старые базы остались?
хотя urpmi --auto-update по идее базы обновляет? или в chroot такой касяк есть?
Код: Выделить всё
grep -r "4.9.20" /var/
/var/lib/mandriva/kde4-profiles/common/share/apps/desktoptheme/Mandriva/widgets/rsibreak.svg: d="M 20.509239,75.017039 C 20.180032,74.883821 19.901946,74.526604 19.804151,74.111321 C 19.735582,73.820136 19.744458,73.653137 19.85059,73.237606 C 20.027637,72.544436 20.721683,70.883458 20.823907,70.908283 C 20.871579,70.919861 20.919823,71.015685 21.220978,71.696964 C 21.430818,72.171671 21.731028,73.00272 21.807765,73.321331 C 21.969978,73.994815 21.764581,74.623947 21.285353,74.921466 C 21.040563,75.073439 20.74006,75.110445 20.509239,75.017039 z" />
/var/lib/mandriva/kde4-profiles/common/share/apps/desktoptheme/Mandriva/widgets/rsibreak.svg: d="M 20.509239,75.017039 C 20.180032,74.883821 19.901946,74.526604 19.804151,74.111321 C 19.735582,73.820136 19.744458,73.653137 19.85059,73.237606 C 20.027637,72.544436 20.721683,70.883458 20.823907,70.908283 C 20.871579,70.919861 20.919823,71.015685 21.220978,71.696964 C 21.430818,72.171671 21.731028,73.00272 21.807765,73.321331 C 21.969978,73.994815 21.764581,74.623947 21.285353,74.921466 C 21.040563,75.073439 20.74006,75.110445 20.509239,75.017039 z" />
[color=#FF0000]/var/lib/rpm/installed-by-default:kernel-nrj-desktop-4.9.20-1rosa-i586[/color]
[color=#FF0000]/var/lib/rpm/installed-by-default:kernel-nrj-desktop-devel-4.9.20-1rosa-i586[/color]
Двоичный файл /var/lib/rpm/Sha1header совпадает
Двоичный файл /var/lib/rpm/log/log.0000000027 совпадает
Двоичный файл /var/lib/rpm/Filepaths совпадает
Двоичный файл /var/lib/rpm/__db.005 совпадает
Двоичный файл /var/lib/rpm/__db.006 совпадает
Двоичный файл /var/lib/rpm/Packages совпадает
Двоичный файл /var/lib/rpm/Dirnames совпадает
Двоичный файл /var/lib/rpm/__db.003 совпадает
Двоичный файл /var/lib/rpm/__db.004 совпадает
kernel-headers
kernel-nrj-desktop-4.9-devel-latest
kernel-nrj-desktop-4.9-latest
kernel-nrj-desktop-4.9.20-1rosa-i586
kernel-nrj-desktop-devel-4.9.20-1rosa-i586
может базы rpm просто обновить как то надо?
старые базы остались?
хотя urpmi --auto-update по идее базы обновляет? или в chroot такой касяк есть?
- VictorR2007
- Сообщения: 7251
- Зарегистрирован: 12 сен 2011, 13:00
Re: манипуляции в chroot после обновления ядра
Обычно такое
Если прав недостаточно.
бывает при попытке установки от пользователя.cpio: unrecognized option '--directory=rpms'
Попробуйте указать `cpio --help' или `cpio --usage',
чтобы получить дополнительную информацию.
Если прав недостаточно.
Re: манипуляции в chroot после обновления ядра
Изменённый при этом grub.cfg при загрузке не используется (по крайней мере, так быть должно, если ничего не меняли).banzay242 писал(а):в том то и болдово что в груб обновляется командой update-grub2.
Re: манипуляции в chroot после обновления ядра
в файле /var/lib/rpm/installed-by-default
изменил на:
вроде не выскакивает при установке
Код: Выделить всё
kernel-headers
kernel-nrj-desktop-4.9-devel-latest
kernel-nrj-desktop-4.9-latest
kernel-nrj-desktop-4.9.20-1rosa-i586
kernel-nrj-desktop-devel-4.9.20-1rosa-i586
изменил на:
Код: Выделить всё
kernel-headers
kernel-nrj-desktop-4.9.41-1rosa-i586
kernel-nrj-desktop-devel-4.9.41-1rosa-i586