Page 1 of 1
initrd + busybox
Posted: 29 Dec 2010, 05:29
by fanthom
initrd and busybox are very important part of live distros as live system is "assembled" from modules at initrd booting stage. there is still a room for improvements in busybox configuration (the heart of initrd micro cosmos) and libs/drivers/firmware provided in the ram disk. if you want to share your experience with initrd or ask about something - please use this topic.
Re: initrd + busybox
Posted: 30 Dec 2010, 19:32
by jcas1411
how do I tell which version of busybox I'm using?
Re: initrd + busybox
Posted: 30 Dec 2010, 21:51
by fanthom
start slax and run /mnt/live/bin/busybox
you will see the version then
Re: initrd + busybox
Posted: 08 Jan 2011, 10:15
by Mithrandil
are those config lines in the new busybox-1.18.1:
Code: Select all
#
# Filesystem/Volume identification
#
CONFIG_FEATURE_VOLUMEID_EXT=y
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
CONFIG_FEATURE_VOLUMEID_REISERFS=y
CONFIG_FEATURE_VOLUMEID_FAT=y
CONFIG_FEATURE_VOLUMEID_HFS=y
CONFIG_FEATURE_VOLUMEID_JFS=y
CONFIG_FEATURE_VOLUMEID_XFS=y
CONFIG_FEATURE_VOLUMEID_NTFS=y
CONFIG_FEATURE_VOLUMEID_ISO9660=y
CONFIG_FEATURE_VOLUMEID_UDF=y
CONFIG_FEATURE_VOLUMEID_LUKS=y
CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
CONFIG_FEATURE_VOLUMEID_CRAMFS=y
CONFIG_FEATURE_VOLUMEID_ROMFS=y
CONFIG_FEATURE_VOLUMEID_SYSV=y
CONFIG_FEATURE_VOLUMEID_OCFS2=y
CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
related to /dev/disk/by-id ?
if yes, it's and interesting feature, you could force linuxrc to boot from a specific device (from=/dev/disk/by-id/$ID/$DISTRONAME)
Re: initrd + busybox
Posted: 08 Jan 2011, 11:03
by fanthom
@Mithrandil
compiled busybox-1.18.1 with blkid support (and VOLUMEID support) but it still shows:
Code: Select all
/dev/sda3: UUID="7af60ce6-35c3-44d7-96b1-98ca04d20b8d"
while i need:
Code: Select all
/dev/sda3: UUID="7af60ce6-35c3-44d7-96b1-98ca04d20b8d" TYPE="reiserfs"
(i need TYPE= for filling up fstab with proper fs type)
here is my config:
http://pastebin.com/U69Ty4qA
Any clues?
Re: initrd + busybox
Posted: 08 Jan 2011, 12:18
by Mithrandil
i'm getting
Code: Select all
pixielive@pixielive ~ $ cat /mnt/live/var/log/blkid.log
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/sda1: UUID="EE64B80564B7CF19" TYPE="ntfs"
/dev/sda3: LABEL="PE" UUID="CCED-990E" TYPE="vfat"
/dev/sda5: UUID="7f3ecb12-74a1-44ae-9759-5c2f6953f518" TYPE="ext4"
/dev/sda6: UUID="a61a7282-e11a-40c7-ba6b-60c986a124bc" TYPE="ext3"
/dev/sda7: UUID="10568c28-85ea-44a2-92a3-a3d7ec158571" TYPE="swap"
/dev/sda8: UUID="0125cfaf-9d6b-4569-b3a4-0b062cca4c6b" TYPE="ext4"
/dev/sdb1: UUID="1992-085B" TYPE="vfat"
/dev/sdc1: UUID="A5E7-7246" TYPE="vfat"
with both 1.17.4 and 1.18.1
http://pastebin.com/qqzsr98G
Re: initrd + busybox
Posted: 08 Jan 2011, 12:44
by fanthom
are you sure that your output comes from blkid which is built into busybox and not /mnt/live/bin/blkid binary?
show me the output of:
"/mnt/live/bin/busybox blkid"
Re: initrd + busybox
Posted: 08 Jan 2011, 12:52
by Mithrandil
fanthom wrote:are you sure that your output comes from blkid which is built into busybox and not /mnt/live/bin/blkid binary?
show me the output of:
"/mnt/live/bin/busybox blkid"
ehm... i didn't compile blkid into the busybox... it's from /mnt/live/bin/blkid
Re: initrd + busybox
Posted: 21 Jan 2011, 18:37
by Quax
Hi Fanthom,
you should use busybox 1.0.19 from git:
Code: Select all
root@fluxflux: /mnt/sdb4/busybox # ./busybox --help
BusyBox v1.19.0.git (2011-01-21 19:23:25 CET) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: busybox --list[-full]
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, ash, blkid, cat, chmod, chroot, cp, cut, df, dmesg, egrep,
fgrep, find, free, grep, halt, head, ifconfig, kill, killall, killall5,
ln, losetup, ls, lsmod, mdev, mkdir, mknod, modprobe, mount, mv, pidof,
ping, pivot_root, poweroff, ps, pstree, reboot, rm, rmdir, rmmod,
route, sed, sh, sleep, sort, sync, tail, test, touch, udhcpc, umount,
uname, vi
root@fluxflux: /mnt/sdb4/busybox # ln -s busybox blkid
root@fluxflux: /mnt/sdb4/busybox # ./blkid /dev/sda1
/dev/sda1: LABEL="FF-System" UUID="b30e1bc7-ef64-4220-81b0-a370458fb073" TYPE="ext2"
root@fluxflux: /mnt/sdb4/busybox #
You can use the binary appended to this thread
Regards, Quax
btw: Could you please post your version of live-scripts somewhere?
Re: initrd + busybox
Posted: 21 Jan 2011, 22:32
by fanthom
Tanks a lot Quax!
just compiled busybox from git, updated linuxrc, got rid of /bin/blkid + /lib/libuuid + /lib/libblkid and works!
200KB removed from initrd
I dont have standard version of LLS, all what i have is included in initrd.lz (linuxrc, fatal, cleanup):
http://ponce.cc/porteus/i486/current/clean_initrd.lz
You wont be able to use it to build live system automatically.
With little tweaks you should be able to get it to work with fluxflux-sl. My version doesn't load any kernel module during boot (except for nls and network drivers for PXE boot). Everything is build into porteus kernel: aufs, squashfs, fuse, usb drivers, etc
Also - it doesn't create /dev/console and /dev/null inside the union (they are provided inside 001-core).
this is list of updated cheatcodes (some were added/removed/renamed):
http://pastebin.com/zYQ5RNFv
if you decide to go with my version then i'll be glad to help you with required tweaks. please dont hesitate to ask about anything.
EDIT:\\
spoke little bit too soon: libblkid and libuuid are required for porteus 'fsck' feature. Also - blkid included in busybox doesn't recognize ext4 properly and btrfs at all. Hopefully they will fix it for final release.