ps2 nohdd "howto"
Patryk Laurent
Last Updated:  20020726 19:40EDT
Version 1.00

How to boot your PS2 from just DVD1 and a Memory Card

These instructions were based largely on the Loopback Root HOWTO.  
Consult that document for more details.  Information on how to 
configure the RTE/bootloader was gleaned from the xRhino project's XML 
file on the ps2rte.  Lastly, tricks like MAKEDEV std are due to the 
brilliant folks on  

0. Notes
1. Create the image
2. Create the Filesystem and Compress
3. Configure the RTE Booter to boot the image
4. And...

20020726 19:40EDT -- Added note about simple inittab, and the need to
			MAKEDEV console (Thanks to
20020725 17:48EDT -- Corrected occurence of init2.img back to initrd.img

0. Notes
To boot and do anything useful, you need glibc (or alternatively, 
uClibc, but I never got busybox to compile successfully.)  Now, notice:

-rwxr-xr-x    1 root     root      7860856 Oct 30  2001 /lib/

Yes, my friends, 8 megs for libc.  If you ever get busybox compiled (or 
cross-compiled) under ps2linux, please e-mail (me). =)  
 How on earth do you fit 8 megs + extra stuff onto a memory card?  
Luckily, you can compress the initrd image and the loader will 
decompress it for you automatically.

1. Create the Image

(Note: I used 16384, but you can certainly use just as much as you 
need.  Remember that 16384 = 16MB of your 32MB of ram!)

mkdir /root/initrd
dd if=/dev/zero of=initrd.img bs=1k count=16384
mke2fs -i 16384 -b 1024 -m 5 -F -v initrd.img 
mount initrd.img /root/initrd -t ext2 -o loop
cd initrd

2. Create the Filesystem and Compress

Copy MAKEDEV into dev on your filesystem (/root/initrd/dev/)
Run:  ./MAKEDEV std to create the standard device files.
Run:  ./MAKEDEV console after this to create the console devices.
Create a linuxrc file in your filesystem's root with something like:


Now, you need to remember to create a trimmed down initttab file to put in
your /etc/ directory:


Here's a listing of the files I included:

total 859
-rwxr-xr-x    1 root     root       113304 Jul 18 21:21 ash
-rwxr-xr-x    1 root     root        78088 Jul 18 23:16 ls
-rwsr-xr-x    1 root     root        79624 Jul 18 21:21 mount
lrwxrwxrwx    1 root     root            3 Jul 18 21:23 sh -> ash
-rwxr-xr-x    1 root     root       599432 Jul 22 20:41 vi
total 28
-rwxr-xr-x    1 root     root        26689 Jul 18 23:16 MAKEDEV
[./MAKEDEV std creates the necessary device files]

total 16
-rw-r--r--    1 root     root          643 Jul 18 23:37 inittab
-rw-r--r--    1 root     root        13870 Jul 18 21:21

total 9645
-rwxr-xr-x    1 root     root       607432 Jul 18 21:22
lrwxrwxrwx    1 root     root           16 Jul 22 20:42 -> 
-rwxr-xr-x    1 root     root      7860856 Jul 18 21:22
lrwxrwxrwx    1 root     root           13 Jul 18 23:25 ->
-rwxr-xr-x    1 root     root       983551 Jul 22 20:40
lrwxrwxrwx    1 root     root           22 Jul 22 20:42 -> /lib/
-rwxr-xr-x    1 root     root       360644 Jul 22 20:43
lrwxrwxrwx    1 root     root           24 Jul 22 20:42 -> /lib/
-rwxr-xr-x    1 root     root        16156 Jul 22 20:41

total 45
-rwxr-xr-x    1 root     root        44292 Jul 18 23:23 init

When done (and after you have added your game binary or whatever you 
require), compress the filesystem:

gzip -c -9 initrd.img > initrdgz.img

3. Configure the RTE Booter to boot the image


mount /mnt/mc00
cp initrdgz.img /mnt/mc00
cd /mnt/mc00
Edit p2lboot.cnf to add this line:
"InitRD"        vmlinux initrdgz.img    203 /dev/ram "ramdisk_size=16384" Bootstrapping InitRD

It's important here that ramdisk_size match the size of your disk, 
otherwise you will get lots of I/O errors when the kernel writes beyond 
the end of the ramdisk with your image.

4. And.....

Voila!  After the system boots, hit enter once if you don't see your 
prompt.  Enjoy!

Needs:   use a smaller kernel, and use a small libc!