USB Hard Disk Installer Code for Puppy2

Under development: PCMCIA, wireless, etc.
Post Reply
Message
Author
JustGreg
Posts: 782
Joined: Tue 24 May 2005, 10:55
Location: Connecticut USA

USB Hard Disk Installer Code for Puppy2

#1 Post by JustGreg »

It is fairly easy to use this script to install Puppy2 to a USB hard drive. The script does not require it to be used with Puppy2. The development and testing were done on Puppy version 1.0.7, version 1.0.2 and Puppy2 Alpha. One needs only to have the original distribution of Puppy2 on a CDROM. This is to ensure a clean file system and set files are used for the initial installation. The USB device used needs to have a size of 250 megabytes or greater.

One untars / unzips the attached archived file. It should produce a directory usbhd. Transfer the following five files are into /root/my-applications/bin:

1. usbhd-int, this is the script that does the installation,

2. initrd.gz, this the initial ram disk for the boot process. This version is from Puppy2 Alpha Sea Monkey version.
On shutdown or reboot, one will end at the console prompt. To reboot use; /bin/busybox reboot and for
shut down use; /bin/busybox poweroff. I have found that Puppy2 Alpha 3/29/06 Snap Shot initrd.gz does not boot
properly. With the 3/29/06 Snap Shot initrd.gz, the boot process reports not finding the USB kernel modules.

3. extlinux.conf, this is the text file that is used by extlinux boot loader to load the kernel with the needed options,

4. usage.txt, this is a text file with this information.

5. restore.txt, a text file that provides information on how to use the two restore files (mbr.org and partinfo.org)
to restore the main boot record if the installation is unsuccessful.

To start the script, just start a RXVT terminal window and type usbhd-inst. The script provides instructions and
tests the devices as needed. It is fairly straight forwarded. I have attempted to make it idiot proof. However,
in the past, when I have tried to idiot proof something, I found the idiot was smarter than my efforts. This includes
the times when I was the idiot. There is no guarantee on performance. It worked for me and should for you. Be
advised the script does erase all information on the device and does not save it.

I have tried the script with two devices, a usb hard drive, Kanguru Zipper 1 Gbye, and a usb flash drive, SanDisk Micro Cruzer 512 Mbyte. Yes, you can use a usb flash drive (at least 256 Mbyte) to test this. I do not know how long the device will last due to Puppy2 Pupmode 2 read/write cycles. But, you can try the script out.

I hope this helps.
Enjoy life, Just Greg
Live Well, Laugh Often, Love Much

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#2 Post by BarryK »

2. initrd.gz, this the initial ram disk for the boot process. This version is from Puppy2 Alpha Sea Monkey version.
On shutdown or reboot, one will end at the console prompt. To reboot use; /bin/busybox reboot and for
shut down use; /bin/busybox poweroff. I have found that Puppy2 Alpha 3/29/06 Snap Shot initrd.gz does not boot
properly. With the 3/29/06 Snap Shot initrd.gz, the boot process reports not finding the USB kernel modules.
Hmmm, this is a mystery. I've just looked through the init script, nothing jumps
out at me as wrong.
So, I guess I should compare the two init scripts, re the usb driver handling, see
what it different.
Can you post the exact error message? The init script uses insmod, with full
path to the modules, so that should not be a problem, however, if the init script
has not loaded the usb modules for some reason, and the kernel needs to access
the usb drive, the kernel will try to use modprobe to load the modules, which
will fail. ...so, I would like to know if the error message has "modprobe" in
it, and also some hint where in the script the problem is occurring.

JustGreg
Posts: 782
Joined: Tue 24 May 2005, 10:55
Location: Connecticut USA

#3 Post by JustGreg »

But of course Barry, it is on the to do list. I was also going to run diff just to see what it reports. I will have it done in a day of two.
Enjoy life, Just Greg
Live Well, Laugh Often, Love Much

JustGreg
Posts: 782
Joined: Tue 24 May 2005, 10:55
Location: Connecticut USA

#4 Post by JustGreg »

I had a rain storm come through and it stopped the yard spring clean up work. I did manage to take a look at the problem. I think the problem was on my end during the testing. The error reported was insmod /lib/modules/2.4.31-lck1/usbcore.o.gz not found and the other needed usb modules. I changed the script to use only the CDROM distribution and installed to both the Zipper usb hard drive and Micro Cruzer usb flash disk. Both work perfectly fine now with sea scape background. I really do not know what happen. Maybe I go the wrong kernel with the wrong initrd somehow. This are working fine now. Here is the revised script and support files. It is a lot smaller. There is no problem now with Puppy2 3/29/06 snap shot!
Attachments
usbhd01-inst.tar.gz
(3.86 KiB) Downloaded 368 times
Enjoy life, Just Greg
Live Well, Laugh Often, Love Much

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#5 Post by BarryK »

JustGreg wrote:The error reported was insmod /lib/modules/2.4.31-lck1/usbcore.o.gz not found and the other needed usb modules.
Probably the wrong kernel, as the init script has
insmod /lib/modules/`uname -r`/usbcore.o.gz
and the latest 29mar snapshot, `uname -r` will return just "2.4.31".
I'm not using the lck patchset anymore, as it breaks ndiswrapper.

JustGreg
Posts: 782
Joined: Tue 24 May 2005, 10:55
Location: Connecticut USA

#6 Post by JustGreg »

Thanks, Barry, that is probably what I did. At this time, I think I have worked the Puppy2 installer enough. I will standby for the next version of Puppy2. When it is available I will do USB flash and hard drive installations to see what happens. In writing the script, I found it was not possible to use fdisk in a script to change the active partition flag (boot). I did find a program (parted from GNU) that would do that in a script. The only version I could find was source that required compiling. I am still working on learning how to do that. You might want to look at the program for Puppy2. Parted would be a good addition for the Puppy2 Installer. Hope this helps.
Enjoy life, Just Greg
Live Well, Laugh Often, Love Much

Post Reply