2 příspěvky / 0 new
Poslední
Obrázek uživatele phracek
Offline
Naposledy viděn: 15 let 9 měsíců zpět
Připojen: 11.06.2008 - 13:49
SLES10 a mkinitramfs

Ahoj vsichni,

vim, ze to sem nepatri, ale rad bych se Vas zeptal na jednu drobnost.
Na SLES9 existoval prikaz mkinitramfs pomoci ktere jsou sji vytvoril svuj vlastni ramfs. Po rebootu pocitace jsem vstoupil do specialniho modu, kde jsem delal kopie HDD.

Na SLES10 ale zadny mkinitramfs. Misto toho pouzivam mkinitrd.
Kdyz, ale prebootuju do tohoto ramfs, tak nedokazu namountovat /boot.
Hlasi mi to /dev/disk/by-id/ata--part1 does nost exist.

Init soubor vypada nasledovne:


#!/bin/sh

export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/lib/klibc/bin
export MOD_PATH=/lib/modules/`uname -r`
export ORIGIN_LVS_MNT=/mnt/origin
export TMP_LVS_MNT=/mnt/tmp

REPL_STATE="OK"

{

echo "=================================="
echo " this kernel uses initramfs "
echo "=================================="

echo " running ($$:$#) $0" "$@"

if [ "$$" != 1 ] ; then
echo $0 must run as /init process
sleep 3
exit 42
fi

# create all mem devices, ash cant live without /dev/null
for i in \
/sys/class/mem/*/dev \
; do
if [ ! -f $i ] ; then continue ; fi
echo -n "."
DEVPATH=${i##/sys}
ACTION=add DEVPATH=${DEVPATH%/dev} /sbin/udev mem
done
#exec < /dev/console > /dev/console 2>&1
echo

. /etc/udev/udev.conf

mkdir -p "$udev_root"
# allow bind mount, to not lose events
mount -t tmpfs -o size=3% initramdevs "$udev_root"
mkdir "$udev_root/shm"
mkdir "$udev_root/pts"

for i in /proc /sys /tmp /root ; do
if [ ! -d "$i" ] ; then mkdir "$i" ; fi
done

if [ ! -f /proc/cpuinfo ] ; then mount -t proc proc /proc ; fi
if [ ! -d /sys/class ] ; then mount -t sysfs sysfs /sys ; fi

# load drivers for the root filesystem, if needed
if [ -x /load_modules.sh ] ; then
PATH=$PATH /load_modules.sh
fi

#
# create all remaining device nodes
echo -n "creating device nodes ."
/sbin/udevtrigger
/sbin/udevsettle --timeout=30
echo -n .

# workaround chicken/egg bug in mdadm and raidautorun
# they do the ioctl on the not yet existing device node...
for i in 0 1 2 3 4 5 6 7 8 9 \
10 11 12 13 14 15 16 17 18 19 \
20 21 22 23 24 25 26 27 28 29 \
30 31 \
; do
mknod -m 660 /dev/md$i b 9 $i
done
mknod -m 400 /dev/isdninfo c 45 255
echo .

if [ -x /load_md.sh ] ; then
PATH=$PATH /load_md.sh
fi

# mounting original boot, because /boot/grub/menu.lst will be replaced
#
echo -n " * mounting /boot ............................ "
mount /boot
if [ $? -ne 0 ] ; then
echo " * problem with mounting /boot ....................... "

REPL_STATE="FAILED"
fi
echo "done"

# copy original menu.lst grub to boot into Linux
#
echo -n " * copying menu.lst .......................... "
cp /menu.lst /boot/grub
echo -n "Test" > /boot/initramfs.log
echo "done"

# start device mapper
#
echo -n "Waiting for /dev/mapper/control to appear: "
for i in 1 2 3 4 5; do
[ -e /dev/mapper/control ] && break
sleep 1
echo -n "."
done
if [ -e /dev/mapper/control ]; then
echo " ok"
else
echo " failed"
fi

## find volume group
##
#vgscan
#
## system should be recognized
## make all its lvs active
##
#vg_root=vgSystem
#vgchange -a y $vg_root
## we don't want to change rootdev
##rootdev=/dev/vgSystem/lvRoot

# mounting original lvs
#
echo "Loading ext3 module"
echo "echo lsmod"
lsmod
echo "inserting jbd"
modprobe jbd
echo "inserting ext3"
modprobe ext3
echo "inserting reiserfs"
modprobe reiserfs
echo "Echo lsmod"
lsmod

********************
Copying sekvence
********************
# umounting original boot
echo "ReplicationState=$REPL_STATE"
#
echo " * umounting /boot ............................ "
} 2>&1 | tee /initramfs.log

cp /initramfs.log /boot

umount /boot
if [ $? -ne 0 ] ; then
echo " * problem with umounting /boot ............... "
fi
echo "done"

exec reboot -d -f

Muzete mi nekdo poradit v cem muze byt problem?
vypis cat/etc/fstab je:

david:/lib # cat /etc/fstab
/dev/system/lvRoot / reiserfs acl,user_xattr 1 1
/dev/system/lvASBackup /.AS/BACKUP reiserfs acl,user_xattr 1 2
/dev/system/lsASSWS /.AS/SWS reiserfs acl,user_xattr 1 2
/dev/system/lvDBS /DBS reiserfs acl,user_xattr 1 2
/dev/system/lvSWS /SWS reiserfs acl,user_xattr 1 2
/dev/disk/by-id/scsi-SSEAGATE_ST373207LC_3KT0BWLS00007529LP3K-part1 /boot reiserfs acl,user_xattr 1 2
/dev/system/lvHome /home reiserfs acl,user_xattr 1 2
/dev/system/lvOpt /opt reiserfs acl,user_xattr 1 2
/dev/system/lvVar /var reiserfs acl,user_xattr 1 2
/dev/system/lvVarCol /var/col reiserfs acl,user_xattr 1 2
/dev/system/lvVarProcm /var/procm reiserfs acl,user_xattr 1 2
/dev/disk/by-id/scsi-SSEAGATE_ST373207LC_3KT0BWLS00007529LP3K-part2 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
/dev/fd0 /media/floppy auto noauto,user,sync 0 0

Diky moc

Obrázek uživatele phracek
Offline
Naposledy viděn: 15 let 9 měsíců zpět
Připojen: 11.06.2008 - 13:49
Ramfs jsem vytvarel

Ramfs jsem vytvarel takto:
1) $mkinitramfs -k $bootDir/vmlinuz -i $initramfsFile.gz -b $tmpDir
2) $gunzip -f $tmpDir/$initramfsFile.gz -c > $tmpDir/$initramfsFile
3) $cpio -i < ../$initramfsFile
4) Prekopirovani meho init souboru
5) $find | $cpio --format=newc -o | $gzip > $tmpDir/$initramfsFile.gz

Obrázek uživatele friedl_jan
Offline
Naposledy viděn: 12 let 1 měsíc zpět
Připojen: 11.03.2008 - 07:16
Nezmenil jsi disk

Nezmenil jsi nahodou disk? Z kus zkontrolovat zda dane zarizeni existuje. Ja jsem mel poobny problem pri zrcadleni na dalsi pc, stacilo napsat misto

/dev/disk/by-id/scsi-SSEAGATE_ST373207LC_3KT0BWLS00007529LP3K-part1 -> /dev/sda1

Je to sice navrat ke starsim vecem ale funkcnim ;-)

Honzik

Obrázek uživatele phracek
Offline
Naposledy viděn: 15 let 9 měsíců zpět
Připojen: 11.06.2008 - 13:49
nakonec pomohlo to, ze jsem

nakonec pomohlo to, ze jsem pomoci modprobe nahral
scsi_mod sd_mod piix ata_piix.

Spis je problem v tom, ze pokud to bude na systemu, kteremu budou chybet jine moduly, tak to opet nepojede a rad bych to udelal dynamicky

Obrázek uživatele friedl_jan
Offline
Naposledy viděn: 12 let 1 měsíc zpět
Připojen: 11.03.2008 - 07:16
To je elegantnejsi reseni

To je elegantnejsi reseni, ja jsem to prepsal v fstabu na /dev/hda1 protoze to pak rozlejvam na vice pc.

Tak hlavne ze se to vyresilo. :-)

Honzik