View previous topic :: View next topic |
Author |
Message |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Wed Apr 24, 2013 7:58 am Post subject: raid not starting up not consistant in boots [solved] |
|
|
hello all, I have a strange issue, I've reinstalled my system and for some reason my raid 5 doesn't starts up ok every boot.
my setup is as follows:
- /boot on raid1 /dev/md1 (200mb) composed of /dev/sd[a-d]1
- / on raid1 /dev/md2 (2Gb) composed of /dev/sd[a-d]2
- /var, /opt and /usr among other things on raid5 /dev/md3 (200mb) composed of /dev/sd[a-d]3
for some reasons the raid5 doesn't boots in sum boots, here are some outputs:
dmesg from defunct boot: http://bpaste.net/show/93684/
dmesg from good boot: http://bpaste.net/show/93687/
mdadm --examine: http://bpaste.net/show/93685/
I'm not using initramfs althoguh the raid5 has metadata 1.2, afaik, because my root is metadata 0.9, autoraid detection works and raid1 and 5 are built in to the kernel.
that is how I worked before the reinstall and it didn't caused issue.
I'm using kernel 3.8.8 and my config can be found here: http://bpaste.net/show/93692/
any hints on why this is happening?
thanks. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein
Last edited by DaggyStyle on Mon May 06, 2013 5:46 am; edited 1 time in total |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Wed Apr 24, 2013 7:08 pm Post subject: |
|
|
DaggyStyle,
Both dmesgs contain Code: | [ 2.487007] md: Autodetecting RAID arrays.
[ 2.517127] md: invalid raid superblock magic on sda3
[ 2.517163] md: sda3 does not have a valid v0.90 superblock, not importing!
[ 2.521342] usb 1-1.6.1: new high-speed USB device number 9 using ehci-pci
[ 2.548294] md: invalid raid superblock magic on sdb3
[ 2.548330] md: sdb3 does not have a valid v0.90 superblock, not importing!
[ 2.581454] md: invalid raid superblock magic on sdc3
[ 2.581490] md: sdc3 does not have a valid v0.90 superblock, not importing!
[ 2.615020] md: invalid raid superblock magic on sdd3
[ 2.615056] md: sdd3 does not have a valid v0.90 superblock, not importing! |
The one that work s also has Code: | [ 3.777733] md: bind<sdd3>
[ 3.785956] md: bind<sdb3>
[ 3.804730] md: bind<sdc3>
[ 3.854603] md: bind<sda3>
[ 3.872058] md/raid:md3: device sda3 operational as raid disk 0
[ 3.872060] md/raid:md3: device sdc3 operational as raid disk 2
[ 3.872061] md/raid:md3: device sdb3 operational as raid disk 1
[ 3.872061] md/raid:md3: device sdd3 operational as raid disk 3
[ 3.872211] md/raid:md3: allocated 4314kB
[ 3.872225] md/raid:md3: raid level 5 active with 4 out of 4 devices, algorithm 2 |
Your 'everything else' md3 always fails to auto assemble, which is because Code: | /dev/sda3:
Magic : a92b4efc
Version : 1.2 | it has a raid version 1.2 superblock.
From this I surmise that mdadm sometimes assembles md3 ans sometimes not. A separate /usr not mounted before udev starts is no supported, are you using udev?
Changing the raid superblock version demands that you backup all the data, destroy the raid, fix it then restore your data.
Its time to learn to roll your own initrd. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Thu Apr 25, 2013 7:07 am Post subject: |
|
|
NeddySeagoon wrote: | DaggyStyle, |
Hello NeddySeagoon,
I've assumed you'll be the one answering me
NeddySeagoon wrote: |
Both dmesgs contain Code: | [ 2.487007] md: Autodetecting RAID arrays.
[ 2.517127] md: invalid raid superblock magic on sda3
[ 2.517163] md: sda3 does not have a valid v0.90 superblock, not importing!
[ 2.521342] usb 1-1.6.1: new high-speed USB device number 9 using ehci-pci
[ 2.548294] md: invalid raid superblock magic on sdb3
[ 2.548330] md: sdb3 does not have a valid v0.90 superblock, not importing!
[ 2.581454] md: invalid raid superblock magic on sdc3
[ 2.581490] md: sdc3 does not have a valid v0.90 superblock, not importing!
[ 2.615020] md: invalid raid superblock magic on sdd3
[ 2.615056] md: sdd3 does not have a valid v0.90 superblock, not importing! |
The one that work s also has Code: | [ 3.777733] md: bind<sdd3>
[ 3.785956] md: bind<sdb3>
[ 3.804730] md: bind<sdc3>
[ 3.854603] md: bind<sda3>
[ 3.872058] md/raid:md3: device sda3 operational as raid disk 0
[ 3.872060] md/raid:md3: device sdc3 operational as raid disk 2
[ 3.872061] md/raid:md3: device sdb3 operational as raid disk 1
[ 3.872061] md/raid:md3: device sdd3 operational as raid disk 3
[ 3.872211] md/raid:md3: allocated 4314kB
[ 3.872225] md/raid:md3: raid level 5 active with 4 out of 4 devices, algorithm 2 |
Your 'everything else' md3 always fails to auto assemble, which is because Code: | /dev/sda3:
Magic : a92b4efc
Version : 1.2 | it has a raid version 1.2 superblock.
From this I surmise that mdadm sometimes assembles md3 ans sometimes not. A separate /usr not mounted before udev starts is no supported, are you using udev?
|
yes, I'm using latest udev, I was using udev-174 (pre whole LP gone mad debacle) and with a almost identical setup (boot, root on raid1, 0.9 and rest on 1.2 raid5) and all worked well, at one point I've decided to check what is the status of separate /usr support on newer udevs, ssuominen answered me that it is supported, so I took the plunge and the system booted without a problem.
up until the new reinstall, I've never encountered scenario in which the raid5 didn't got assemble. if it isn't supported, why the auto assemble is in consistent? NeddySeagoon wrote: |
Changing the raid superblock version demands that you backup all the data, destroy the raid, fix it then restore your data.
|
I've assumed that.
NeddySeagoon wrote: | Its time to learn to roll your own initrd. |
I usually refrain from using initrd, the two main reasons is the creation of it (not sure how complicated it) and the memory issue, I'm not willing to use initramfs because it stays in the memory post boot and this memory block cannot be used anymore. not sure if initrd is the same.
moreover, from what I understand initrd is deprecated and is due to be replaced by initramfs later on which is (again) something I'm not willing to do.
can you shed some more light on this?
Thanks. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Thu Apr 25, 2013 6:06 pm Post subject: |
|
|
DaggyStyle,
You appear to have a race condition. When md3 is not started when the attempt to mount /usr happens, your boot fails.
As md3 cannot be auto assembled, it must be assembled by a call to mdadm during the boot process.
In which runlevel is mdadm ?
If its in default, move it to boot and see what happens.
Making an initrd for your case is fairly easy.
You need two files.
The first is a list of things to include in the initrd, the second is the init script to go in the initrd.
Then you feed the file list to a script that is provided in the kernel. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Fri Apr 26, 2013 4:04 pm Post subject: |
|
|
NeddySeagoon wrote: | DaggyStyle,
You appear to have a race condition. When md3 is not started when the attempt to mount /usr happens, your boot fails.
As md3 cannot be auto assembled, it must be assembled by a call to mdadm during the boot process.
In which runlevel is mdadm ?
If its in default, move it to boot and see what happens.
|
it is in boot level
NeddySeagoon wrote: |
Making an initrd for your case is fairly easy.
You need two files.
The first is a list of things to include in the initrd, the second is the init script to go in the initrd.
Then you feed the file list to a script that is provided in the kernel. |
don't know what I need to include all I want it to assemble my raids and than continue to boot as normal, maybe add a rescue mode but no need to boot any special modules, the kernel already loads all. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Fri Apr 26, 2013 5:42 pm Post subject: |
|
|
DaggyStyle,
Heres my /root/initrd directory contents. Its just two files init and initramfs_list.
initramfs_list contains the list of files to be included in the initrd.
Code: | # directory structure
dir /proc 755 0 0
dir /usr 755 0 0
dir /bin 755 0 0
dir /sys 755 0 0
dir /var 755 0 0
#dir /lib 755 0 0
dir /lib64 755 0 0
dir /sbin 755 0 0
dir /mnt 755 0 0
dir /mnt/root 755 0 0
dir /etc 755 0 0
dir /root 700 0 0
dir /dev 755 0 0
# busybox
file /bin/busybox /bin/busybox 755 0 0
# for raid on lvm
file /sbin/mdadm /sbin/mdadm 755 0 0
file /sbin/lvm.static /sbin/lvm.static 755 0 0
# libraries required by /sbin/fsck.ext4 and /sbin/fsck
slink /lib /lib64 777 0 0
file /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 755 0 0
file /lib64/libext2fs.so.2 /lib64/libext2fs.so.2 755 0 0
file /lib64/libcom_err.so.2 /lib64/libcom_err.so.2 755 0 0
file /lib64/libpthread.so.0 /lib64/libpthread.so.0 755 0 0
file /lib64/libblkid.so.1 /lib64/libblkid.so.1 755 0 0
file /lib64/libuuid.so.1 /lib64/libuuid.so.1 755 0 0
file /lib64/libe2p.so.2 /lib64/libe2p.so.2 755 0 0
file /lib64/libc.so.6 /lib64/libc.so.6 755 0 0
file /lib64/libmount.so.1 /lib64/libmount.so.1 755 0 0
file /sbin/fsck /sbin/fsck 755 0 0
file /sbin/fsck.ext4 /sbin/fsck.ext4 755 0 0
# our init script
file /init /root/initrd/init 755 0 0 |
Trap for the unwary, a few packages need the static USe flag. This is a bad thing to set globally.
Code: | # static bits and pieces for an initrd
sys-fs/lvm2 static
sys-fs/mdadm static
sys-apps/busybox static |
The init script contains Code: | #!/bin/busybox sh
rescue_shell() {
echo "$@"
echo "Something went wrong. Dropping you to a shell."
/bin/busybox --install -s
exec /bin/sh
}
# allow the use of UUIDs or filesystem lables
uuidlabel_root() {
for cmd in $(cat /proc/cmdline) ; do
case $cmd in
root=*)
type=$(echo $cmd | cut -d= -f2)
echo "Mounting rootfs"
if [ $type == "LABEL" ] || [ $type == "UUID" ] ; then
uuid=$(echo $cmd | cut -d= -f3)
mount -o ro $(findfs "$type"="$uuid") /mnt/root
else
mount -o ro $(echo $cmd | cut -d= -f2) /mnt/root
fi
;;
esac
done
}
check_filesystem() {
# most of code coming from /etc/init.d/fsck
local fsck_opts= check_extra= RC_UNAME=$(uname -s)
# FIXME : get_bootparam forcefsck
if [ -e /forcefsck ]; then
fsck_opts="$fsck_opts -f"
check_extra="(check forced)"
fi
echo "Checking local filesystem $check_extra : $1"
if [ "$RC_UNAME" = Linux ]; then
fsck_opts="$fsck_opts -C0 -T"
fi
trap : INT QUIT
# using our own fsck, not the builtin one from busybox
/sbin/fsck -p $fsck_opts $1
ret_val=$?
case $ret_val in
0) return 0;;
1) echo "Filesystem repaired"; return 0;;
2|3) if [ "$RC_UNAME" = Linux ]; then
echo "Filesystem repaired, but reboot needed"
reboot -f
else
rescue_shell "Filesystem still have errors; manual fsck required"
fi;;
4) if [ "$RC_UNAME" = Linux ]; then
rescue_shell "Fileystem errors left uncorrected, aborting"
else
echo "Filesystem repaired, but reboot needed"
reboot
fi;;
8) echo "Operational error"; return 0;;
16) echo "Use or Syntax Error"; return 16;;
32) echo "fsck interrupted";;
127) echo "Shared Library Error"; sleep 20; return 0;;
*) echo $ret_val; echo "Some random fsck error - continuing anyway"; sleep 20; return 0;;
esac
# rescue_shell can't find tty so its broken
rescue_shell
}
# start for real here
# temporarily mount proc and sys
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev
# disable kernel messages from popping onto the screen
###echo 0 > /proc/sys/kernel/printk
# clear the screen
###clear
# assemble the raid set(s) - they got renumbered from md1, md5 and md6
# not needed on SSD but we may want to maintain it
# /boot
/sbin/mdadm --assemble /dev/md125 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
# don't care if /boot fails to assemble
# not needed on SSD
# / (root) I wimped out of root on lvm for this box
/sbin/mdadm --assemble /dev/md126 /dev/sda5 /dev/sdb5 /dev/sdc5 /dev/sdd5 || rescue_shell
# if root won't assemble, we are stuck
# LVM for everything else
# /home and everything portge related
/sbin/mdadm --assemble /dev/md127 /dev/sda6 /dev/sdb6 /dev/sdc6 /dev/sdd6 || rescue_shell
# and if the LVM space won't assemble there is no /usr or /var so we are really in a mess
# TODO could auto cope with degraded raid operation
# lvm runs as whatever its called as
ln -s /sbin/lvm.static /sbin/vgchange
# everything on the SDD
/sbin/vgchange -ay ssd || rescue_shell
# start the vg volume group - /home and everything for portage - need not die here
/sbin/vgchange -ay vg || rescue_shell
# if this failed we have no /usr or /var
# get here with raid sets assembled and logical volumes available
# mounting rootfs on /mnt/root
uuidlabel_root || rescue_shell "Error with uuidlabel_root"
# space separated list of mountpoints that ...
mountpoints="/usr /var"
# ... we want to find in /etc/fstab ...
ln -s /mnt/root/etc/fstab /etc/fstab
# ... to check filesystems and mount our devices.
for m in $mountpoints ; do
#echo $m
check_filesystem $m
echo "Mounting $m"
# mount the device and ...
mount $m || rescue_shell "Error while mounting $m"
# ... move the tree to its final location
mount --move $m "/mnt/root"$m || rescue_shell "Error while moving $m"
done
echo "All done. Switching to real root."
# clean up. The init process will remount proc sys and dev later
umount /proc
umount /sys
umount /dev
# switch to the real root and execute init
exec switch_root /mnt/root /sbin/init |
I have root on LVM, a separate /usr and /var, so you can trim it down quite a bit.
The hard bit is running Code: | scripts/gen_initramfs_list.sh | in the kernel tree.
The good thing about this initrd, is that its kernel agnostic - there are no kernel modules so it rarely needs updating.
This is from a hew install but it has its origins in a 2009 initrd which still works. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Sat Apr 27, 2013 6:43 am Post subject: |
|
|
Thanks for the info.
three small question,
- I assume that there is a pkg that creates the initrd, is it mkinitrd?
- all I need is to assemble the raid, can I trim down the init script to do that (skip the check and mounts)?
- I see that I need static mdadm, is it ok to hand compile is outside of the tree and copy the resulting and the config to the initrd?
_________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Sat Apr 27, 2013 8:02 am Post subject: |
|
|
DaggyStyle,
1) Its NeddySeagoon wrote: | The hard bit is running
Code: | scripts/gen_initramfs_list.sh | in the kernel tree. |
2) With the ongoing /usr merge, its only a matter of time until you are forced to mount /usr in the initrd.
Yo may as will do that now. You will also need to fsck /usr before you mount it.
3) Not really. The script that builds the initrd copies the system mdadm and busybox.
Put Code: | sys-fs/mdadm static
sys-apps/busybox static | in your package.use and have those two packages static system wide.
If you do anything else, you will forget next time you build the initrd, which may be a long time away. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Sat Apr 27, 2013 9:20 am Post subject: |
|
|
NeddySeagoon wrote: | DaggyStyle,
1) Its NeddySeagoon wrote: | The hard bit is running
Code: | scripts/gen_initramfs_list.sh | in the kernel tree. |
|
I see, btw, the output is initrd or initramfs?
NeddySeagoon wrote: |
2) With the ongoing /usr merge, its only a matter of time until you are forced to mount /usr in the initrd.
Yo may as will do that now. You will also need to fsck /usr before you mount it. |
ongoing /usr merge? can you please elaborate more?
NeddySeagoon wrote: |
3) Not really. The script that builds the initrd copies the system mdadm and busybox.
Put Code: | sys-fs/mdadm static
sys-apps/busybox static | in your package.use and have those two packages static system wide.
If you do anything else, you will forget next time you build the initrd, which may be a long time away. |
actually I don't fancy building busybox and mdadm as static as part of the tree, that is why I'm thinking of compiling them by hand out of the tree. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Sat Apr 27, 2013 9:34 am Post subject: |
|
|
DaggyStyle,
Code that was in /, /lib, /sbin and others is slowly being moved to the same places but in /usr.
There will be little left on /
udev somewhat unfairly got the blame for the breakage this causes when the devs dropped support for retrying things that failed because /usr was not yet mounted.
The real cause was the move of code from / to /usr, whih is nothing to do with udev. udev had been papering over the cracks, then stopped.
If a separate /usr works for you now, its only a matter of time until it fails.
The script builds an initramfs, its a cpio archive.
busybox should be static if its installed at all. Its a rescue toolkit. If your dynamic linking or any of its libs are broken, it won't work as rescue shell.
You only need build the initrd stuff with USE=static long enough to make the initrd. You can revert it after. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Sat Apr 27, 2013 5:21 pm Post subject: |
|
|
NeddySeagoon wrote: | DaggyStyle,
Code that was in /, /lib, /sbin and others is slowly being moved to the same places but in /usr.
There will be little left on /
udev somewhat unfairly got the blame for the breakage this causes when the devs dropped support for retrying things that failed because /usr was not yet mounted.
The real cause was the move of code from / to /usr, whih is nothing to do with udev. udev had been papering over the cracks, then stopped.
If a separate /usr works for you now, its only a matter of time until it fails. |
I understand, your script does it for all partitions, right?
will doing it to root and usr is enough?
NeddySeagoon wrote: | The script builds an initramfs, its a cpio archive. |
mmm no good, I need initrd, lets assume the following, I want to detect the raids, have rescue shell, root is reiserfs and usr is ext4.
I need busybox, mdadm, ext4.fchk and reiserfs check fs all static.
as initramfs doesn't release the memory it takes, I'm loosing memory and I'm not willing to do that.
for me this is a bloatware that I'm not supporting, initrd will load the stuff I need and release the memory later on.
how can I generate an initrd?
NeddySeagoon wrote: | busybox should be static if its installed at all. Its a rescue toolkit. If your dynamic linking or any of its libs are broken, it won't work as rescue shell.
You only need build the initrd stuff with USE=static long enough to make the initrd. You can revert it after. |
as said, I'd rather builds all the tools statically out of the tree (not install them anywhere, just compile) and copy it into the initrd
Thanks. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Sat Apr 27, 2013 7:16 pm Post subject: |
|
|
DaggyStyle,
Root is checked after its mounted read only, since fsck, is stored on root and with no initrd, there is no way to check root until its mounted.
That does not change when you use and initrd, so you only need fsck for /usr
If you want to build the static stuff out of the tree, you may do so. Change the corresponding entries in initramfs_list to point to your static programs.
You can make an initrd if you wish too. Its an ext2 root filesystem in a file that is gzipped before being moved to /boot. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Sun Apr 28, 2013 5:54 am Post subject: |
|
|
NeddySeagoon wrote: | DaggyStyle,
Root is checked after its mounted read only, since fsck, is stored on root and with no initrd, there is no way to check root until its mounted.
That does not change when you use and initrd, so you only need fsck for /usr
If you want to build the static stuff out of the tree, you may do so. Change the corresponding entries in initramfs_list to point to your static programs.
You can make an initrd if you wish too. Its an ext2 root filesystem in a file that is gzipped before being moved to /boot. |
ok, what is the process of creating the initrd? I assume that creating the img, create the fs, mount it, create a root like structure, copy the files like you did and then?
Thanks. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Sun Apr 28, 2013 10:59 am Post subject: |
|
|
DaggyStyle,
Either make the initrd in an empty file formatted with ext2, or make it in a spare ext2 formatted partiton.
Put all the files there in the right directory structure, with the right owners, groups and permissions, they are all listed in the _list file.
gzip the file and put the gzip version into /boot so you use your bootloader to load it.
Make sure your kernel has initrd and ext2 support. ext2 must be build in.
Tell the kernel that root=/dev/ram0 real_root=/dev/md...
Cross your fingers and reboot. Its not that bad.
As your kernel have everything in it to boot but not reliably, its easy enough to have another go without booting a live distro. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Sun Apr 28, 2013 11:25 am Post subject: |
|
|
ok, thanks, btw, is it possible to run rm -rf on all unnecessary file before I run switchroot if I use initramfs? _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Sun Apr 28, 2013 11:53 am Post subject: |
|
|
DaggyStyle,
Probably - I've not tried. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Sun Apr 28, 2013 11:54 am Post subject: |
|
|
DaggyStyle,
Probably - I've not tried. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Sun Apr 28, 2013 1:33 pm Post subject: |
|
|
my problem with initramfs was the amount of memory that the initramfs takes as it says in the memory, if I can remove all rest of the files, I might be able to live with it. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Sun Apr 28, 2013 1:55 pm Post subject: |
|
|
DaggyStyle,
I'm not sure if rm the files frees the RAM or not.
-- edit --
Interesting exercise ... read the initramfs_list file, determine the size of the initrd ext2 filesystem
make the initrd filesystem file, format it as ext2 copy everything over and gzip it to a destination file of your choice.
Late thought. mdadm and busybox need not be static as the dynamic loader is present in the initramfs for mount and fsck.
You would just need to add the libs identified by lddtree busybox and lddtree mdadm _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
Goverp Advocate


Joined: 07 Mar 2007 Posts: 2244
|
Posted: Mon Apr 29, 2013 7:58 am Post subject: |
|
|
Assuming you're using busybox's switch_root, it already does rm -f on the initramfs before the switch. _________________ Greybeard |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Mon Apr 29, 2013 6:27 pm Post subject: |
|
|
Goverp.
Code: | exec switch_root /mnt/root /sbin/init | so thats a yes. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Tue Apr 30, 2013 11:42 am Post subject: |
|
|
I'm working on this, btw, how can I add disk/by-label support to the initramfs? _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Tue Apr 30, 2013 11:45 am Post subject: |
|
|
NeddySeagoon wrote: | DaggyStyle,
I'm not sure if rm the files frees the RAM or not.
-- edit --
Interesting exercise ... read the initramfs_list file, determine the size of the initrd ext2 filesystem
make the initrd filesystem file, format it as ext2 copy everything over and gzip it to a destination file of your choice.
Late thought. mdadm and busybox need not be static as the dynamic loader is present in the initramfs for mount and fsck.
You would just need to add the libs identified by lddtree busybox and lddtree mdadm |
initramfs size if ~140mb I keeping 140 mb in memory just of boot is a bad practice imho. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55234 Location: 56N 3W
|
Posted: Tue Apr 30, 2013 6:21 pm Post subject: |
|
|
DaggyStyle,
The script I posted supports disk by lable and UUIDs.
140Mb for an initrd ?
That would be huge _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
DaggyStyle Watchman


Joined: 22 Mar 2006 Posts: 5945
|
Posted: Tue Apr 30, 2013 6:51 pm Post subject: |
|
|
NeddySeagoon wrote: | DaggyStyle,
The script I posted supports disk by lable and UUIDs.
140Mb for an initrd ?
That would be huge |
140 unpacked.
well I don't see the partitions of the raid 5 and I don't have /dev/disk/by-label so I've got an error there, any idea what I'm missing? I've took your script. _________________ Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|