2007/01/18

Update: Bash-only Linux

This is an update to this old article, which works on Fedora Core 6.

Copy this script into a file, modify the grub entries with your system parameters, run it and enjoy using a dummy linux where you can only write "help", and some useless commands... swear next it'll include the nvidia driver.

#!/bin/bash -v
# Bash only filesystem on a file - rodolfoap@gmail.com

# Create an empty file
dd if=/dev/zero of=/tmp/embed bs=2k count=4k

# Make an ext2fs
/sbin/mkfs.ext2 -v -F -b 2048 /tmp/embed

# Mount it as a loop
mkdir -p /mnt/embed
mount -v /tmp/embed /mnt/embed -o loop -t ext2
cd /mnt/embed

# Create basic structure and fill it with needed files
mkdir bin dev lib
cp -av /dev/tty /dev/console /dev/ram dev/
cp -v /bin/bash bin/
# to found libs needed by bash, use # ldd /bin/bash
cp -v /lib/libtermcap.so.2 lib/
cp -v /lib/libdl.so.2 lib/
cp -v /lib/libc.so.6 lib/
cp -v /lib/ld-linux.so.2 lib/

# Create boot file
cd /tmp
umount -v /mnt/embed
gzip -v < embed > /boot/embed.gz

# Add entry in grub: change root and kernel line with your parameters
cat >> /etc/grub.conf << "EOF"
title Bash Only Filesystem
root (hd0,0)
kernel /vmlinuz-2.6.18-1.2869.fc6 ro root=/dev/ram ramdisk_blocksize=2048 init=/bin/bash
initrd /embed.gz
EOF

# Manually correct grub parameters
read -p "Press ENTER to start editing grub.conf..."
vi /etc/grub.conf

# End script. Reboot with "init 6" and choose the BASH option in GRUB.
# Toto: sos un mostro, thnx.

7 comments:

Anonymous said...

me sale esto en ubuntu al bootear, hasta ahí llege.

est2_fs:blocksize too small for device

no logro hacerlo funcionar

Rodolfo said...

Pues no olvides el ramdisk_blocksize=2048. Por eso lo actualicé, hace un tiempo se cambió el blocksize default.

Anonymous said...

Pues la verdad de inicio a final... nada.
Pero suerte para el resto

Rodolfo said...

"de inicio a final... nada"? qué parte es la que no pudiste? como que es bastante simple... escribe y te ayudaremos...

Anonymous said...

Es largo de pedir explicaciones, pero gracias por responder (con algunos dias de retraso) pero estuvo super. Mañana o pasado te explico que no entendi :D

Anonymous said...

yaaaaaaaaaaaa funcccccioonnnnnnnnnnnnooooooooo!!!!! pero como lo pongo en un isofs???

Anonymous said...

Y cuando te daras tiempo para explicarme, por que la verdad no tengo como encontrarte, ni siquiera en el foro abierto. Ya no participas o ¿estás desconectado?