Portál AbcLinuxu, 12. května 2025 14:10
Uniform CD-ROM driver Revision: 3.20
Done
Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
device-mapper: ioctl: 4.7.0-ioctl (2006-06-24) initialised: dm-devel@redhat.com
vgchange: error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory
vgchange: error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory
Done.
Begin: Waiting for root file system... ...
Done.
Check root= bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
ALERT! /dev/mapper/hsee--dcn--s444-root does not exist. Dropping to a shell!
BusyBox v1..1.3 (Debian 1:1.1.3-4) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs) cat /proc/cmdline
root=/dev/mapper/hsee--dcn--s444-root ro
Pomocou Live CD som zobral súbor /boot/initrd.img-2.6.18-6-686 a rozbalil príkazom zcat initrd.img-2.6.18-6-686 | cpio -i
. Výsledný adresár neobsahuje knižnicu lib/libreadline.so.5 .
Knižnicu som doplnil do lib adresára a vytvoril nový iniramfs príkazom find . -print | cpio -i > ~/initrd.img-2.6.18-6-686
. Výsledný súbor som gzipoval a nahodil do /boot, pridal som záznam do grubu s novým initram obrazom a pokúsil som sa nabootovať.
Žiaľ, skončil som na chybe:
RAMDISK: Compressed image found at block 0
RAMDISK: incomplete write: (-28 != 32768) 8388608
a potom už len hlášky VFS: cannot open root device a panika jadra.
Vie niekto poradiť ako správne vytvoriť iniramfs obraz z upravenej adresárovej štruktúry?
Ďakujem.
find | cpio --format=newc -o | gzip > /boot/initrd.img-2.6.18-6-686.correct
Želám veľa šťastia pri vytváraní initramfs obrazov.
dpkg-reconfigure linux-kernel-...
, ale boot stále hlásil chýbajúcu knižnicu libreadline pri inicializácii LVM.
Vo VitrualBoxe som urobil čistú inštaláciu Debian Etch s root partíciou na LVM a po kontrole funkčnosti som rozbalil initramfs. V adresári lib som mal libreadline a libncurses, ktoré na produčnom stroji neboli. Nuž som ich pridal na produčnom stroji do adresára lib a vytvoril nový initramfs. Teraz nabieha bezproblémov, v Grube som tieto úpravy zaradil mimo automaticky aktualizované veci.
Zaujímavé ešte je že mkinitramfs sa snaží odhadnúť knižnice ktoré potrebujú binárky v initramfs a pridáva ich pri vytváraní. Ale systémový vgchange nepotrebuje libreadline:
hsee-dcn-s444:~# ldd `which vgchange`
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e11000)
/lib/ld-linux.so.2 (0xb7f51000)
Naopak, vgchange v initramfs potrebuje viac knižníc:
hsee-dcn-s444:~/initramfs/sbin# ldd vgchange
linux-gate.so.1 => (0xffffe000)
libdevmapper.so.1.02 => /lib/libdevmapper.so.1.02 (0xb7f7d000)
libreadline.so.5 => /usr/local/groundwork/lib/libreadline.so.5 (0xb7f4f000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7f39000)
libsepol.so.1 => /lib/libsepol.so.1 (0xb7ef8000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7ef4000)
libncurses.so.5 => /usr/local/groundwork/lib/libncurses.so.5 (0xb7eb3000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d82000)
/lib/ld-linux.so.2 (0xb7f9d000)
Tým /usr/local/groundwork knižniciam už vôbec nerozumiem. Inštalácia groundworku nie je jednoduchá a asi poprepisoval knižnice v systéme. Ešte sa na to pozriem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.