Page 1 of 1

How to Make a Puppy Flash Drive using Another Linux

Posted: Sat 17 Apr 2010, 15:34
by rcrsn51
This article will try to resolve the following chicken-versus-egg situation: My computer doesn't have a CD writer. So I can't make a Puppy Live CD. So I can't run Puppy. So I can't run the Universal Installer. So I can't install Puppy onto a flash drive. So I can't run Puppy.

Windows users can solve this problem with Unetbootin. But Linux-only users need an alternative.

In order to proceed, the following things must be true.

1. Your flash drive has the standard DOS/Win boot code on its MBR. It should, but see the note at the end.
2. The flash drive partition is flagged as bootable. Check this with Gparted.
3. Your Linux has the syslinux bootloader package. It probably does.

Here are the steps.

1. Determine the device name of your flash drive partition. It should be something like sdb1. But making a mistake with the device name can cause bad things to happen. Buyer beware.

2. Plug in the flash drive but don't mount it. Type:

Code: Select all

syslinux /dev/sdxy
where sdxy is the flash drive partition. This installs the syslinux bootloader.

3. Mount the flash drive and make a file named syslinux.cfg containing the following line:

Code: Select all

default vmlinuz initrd=initrd.gz pmedia=usbflash
4. Download the Puppy ISO file and mount it.

Code: Select all

mkdir mnt
mount -o loop pupxxx.iso mnt
5. Copy three files from the mounted ISO to the flash drive - vmlinuz, initrd.gz and pupxxx.sfs.

6. Unmount everything and boot off the flash drive.

If it won't boot, here are some trouble-shooting questions.

Do you know for sure that your machine supports USB bootability? Many older machines (and some newer ones) don't. The best scenario is where the BIOS detects the flash drive as a secondary hard drive.

Have you modified your BIOS boot priority list to enable USB booting?

How is the flash drive formatted? Some users report better results with fat16 than fat32.

Does the MBR of your flash drive contain the standard boot code? If not, you can manually update the code as follows:

1. Locate a file named "mbr.bin" in the syslinux package. Look for it in a folder like /usr/lib/syslinux.

2. Write this file onto the MBR of your flash drive using a command like:

Code: Select all

 dd if=mbr.bin of=/dev/sdb
Note that this command uses "sdb" and not "sdb1"

Posted: Sat 02 Jul 2011, 15:05
by darkcity
This is a well written guide, would you mind if I added it to the PUppy wiki?

Posted: Sat 02 Jul 2011, 18:17
by Aitch
darkcity - good work on the wiki

thanks

Aitch :)

Posted: Sat 02 Jul 2011, 20:50
by darkcity
its a pleasure, hopefully its usefulness will keep growing ; -)

Re: How to Make a Puppy Flash Drive using Another Linux

Posted: Mon 25 Mar 2013, 10:18
by sacsdu
rcrsn51 wrote:This article will try to resolve the following chicken-versus-egg situation: My computer doesn't have a CD writer. So I can't make a Puppy Live CD. So I can't run Puppy. So I can't run the Universal Installer. So I can't install Puppy onto a flash drive. So I can't run Puppy.

Windows users can solve this problem with Unetbootin. But Linux-only users need an alternative.

In order to proceed, the following things must be true.

1. Your flash drive has the standard DOS/Win boot code on its MBR. It should, but see the note at the end.
2. The flash drive partition is flagged as bootable. Check this with Gparted.
3. Your Linux has the syslinux bootloader package. It probably does.

Here are the steps.

1. Determine the device name of your flash drive partition. It should be something like sdb1. But making a mistake with the device name can cause bad things to happen. Buyer beware.

2. Plug in the flash drive but don't mount it. Type:

Code: Select all

syslinux /dev/sdxy
where sdxy is the flash drive partition. This installs the syslinux bootloader.

3. Mount the flash drive and make a file named syslinux.cfg containing the following line:

Code: Select all

default vmlinuz initrd=initrd.gz pmedia=usbflash
4. Download the Puppy ISO file and mount it.

Code: Select all

mkdir mnt
mount -o loop pupxxx.iso mnt
5. Copy three files from the mounted ISO to the flash drive - vmlinuz, initrd.gz and pupxxx.sfs.

6. Unmount everything and boot off the flash drive.

If it won't boot, here are some trouble-shooting questions.

Do you know for sure that your machine supports USB bootability? Many older machines (and some newer ones) don't. The best scenario is where the BIOS detects the flash drive as a secondary hard drive.

Have you modified your BIOS boot priority list to enable USB booting?

How is the flash drive formatted? Some users report better results with fat16 than fat32.

Does the MBR of your flash drive contain the standard boot code? If not, you can manually update the code as follows:

1. Locate a file named "mbr.bin" in the syslinux package. Look for it in a folder like /usr/lib/syslinux.

2. Write this file onto the MBR of your flash drive using a command like:

Code: Select all

 dd if=mbr.bin of=/dev/sdb
Note that this command uses "sdb" and not "sdb1"
Did you see syslinux or extlinux is not working with puppy linux for ext4 filesystem on the USB flash key. I was disappointed to see that. Though the workaround is to use another Linux but I think puppy should really fix it. I mentioned it on my blog post. It would be so nice to see that Puppy Universal USB Installer works with ext4 as well.

Posted: Mon 25 Mar 2013, 14:21
by darkcity
Hi sacsdu

Welcome to the forum. Thanks for reporting the ext4 bug.

This thread is about installing Puppy without the Puppy Universal USB Installer.

I recommend starting a new thread in the 'Bugs' forum, as I can't find a specific thread about that program
http://murga-linux.com/puppy/index.php?f=10

BTW I've added your blog to the Puppy Sites wiki page
http://puppylinux.org/wikka/PuppySites

Posted: Wed 03 Apr 2013, 06:18
by sacsdu
darkcity wrote:Hi sacsdu

Welcome to the forum. Thanks for reporting the ext4 bug.

This thread is about installing Puppy without the Puppy Universal USB Installer.

I recommend starting a new thread in the 'Bugs' forum, as I can't find a specific thread about that program
http://murga-linux.com/puppy/index.php?f=10

BTW I've added your blog to the Puppy Sites wiki page
http://puppylinux.org/wikka/PuppySites
Submitted under bugs here. Hope it's okay to post there.

Re: How to Make a Puppy Flash Drive using Another Linux

Posted: Sun 13 Sep 2015, 17:36
by Chases_Kangaroos
rcrsn51 wrote:This article will try to resolve the following chicken-versus-egg situation: My computer doesn't have a CD writer. So I can't make a Puppy Live CD. So I can't run Puppy. So I can't run the Universal Installer. So I can't install Puppy onto a flash drive. So I can't run Puppy.

Windows users can solve this problem with Unetbootin. But Linux-only users need an alternative.
Hello rcrsn51 and all,

I'll just throw in an alternative to both these instructions and to Unetbootin. I realize this post is now five years old, but I've discovered many more utilities of Unetbootin's kind, designed to create live flash drives of a Linux distro or other OS.

Unetbootin was the first I'd heard of. I tried it, and at least one other (there's one called SARDU, maybe it was that one). I finally settled on a program called YUMI which, according to their website, stands for Your Universal Multiboot Integrator (or Installer, depending which part of the site you're reading :roll:).

http://www.pendrivelinux.com/yumi-multi ... b-creator/

According to the site, YUMI can be run from Ubuntu or Debian. But I will say upfront that I did not try it because I am a relative newbie in Linux, and I ran YUMI from my Windows machine to create my flash drive which currently contains Puppy Linux. I'm making this post from Puppy Linux, booted from my YUMI-created flash drive.

What I liked about YUMI compared to Unetbootin (if memory serves; it's been a couple years) is that Unetbootin would allow you to install only one distro to your flash drive. With YUMI I installed several different Linux distros to a single flash drive, and on another flash drive installed several antivirus utilities, Trinity Rescue Kit, Hiren's Boot CD and other similar diagnostic tools. I was trying to fix my non-booting Windows, but eventually became familiar enough with the three Linux distros that I kind of got distracted from the original problem and kept using Linux from a flash drive... first Linux Mint, then PinguyOS, then Slacko Puppy.

At bootup you just choose what you want to run. YUMI may not install whatever particular distro you're interested in, but several versions of Puppy are included in their list of supported distros and tools. I've run Puppy for close to a year from a flash drive created by YUMI. It was pretty easy and straightforward, and again I'm a relative Linux newbie.

From what I remember as I watched YUMI do its thing during installation, it was similar to (and for all I know exactly the same as) the original poster's instructions, above. But for someone like me whose eyes glaze over at instructions that are foreign (coming from Windows), I'd have been scared off by the instructions above, as good as they may be to a more confident user. It was nice to just sit back and watch. I just had to find and download ISO files of each distro that I wanted (again, choosing from the "supported distros" list on the YUMI website, then start YUMI and tell it where to find those ISO files, then sit back and watch.

I'm probably forgetting some details and possibly a few quirks about using YUMI, as with learning any new software. But it wasn't hard, and I'm happy with the result. As far as I'm aware, any problems I've had with my distros since then -- and I've had them! -- were caused by me or the distro, not by the installer program.

Hopefully this helps another beginner to accomplish the topic of this post -- to make a Puppy flash drive using another Linux.

Posted: Mon 14 Sep 2015, 06:06
by bigpup
5. Copy three files from the mounted ISO to the flash drive - vmlinuz, initrd.gz and pupxxx.sfs.
Tahrpup also needs the zdrvxxxx.sfs file.
So, it needs 4 files.

Any other versions of Puppy having a zdrv file will also need it.

Carolina's adrvxxx.sfs -- perhaps some other Pups

Posted: Mon 14 Sep 2015, 14:32
by mikeslr
Hi all,

Most devs built applications in puppy_xxx.sfs. However, the Carolina devs have placed almost all applications in adrvxxx.sfs. I think puppy_xlina.xxx only includes a text editor and a terminal in addition to the "core" applications required to boot, manage and add other applications.

As an example, Carolina Vanguard's puppy_vlina.sfs is 123 Mbs, while its adrv_vlina.sfs is 357 Mbs.

Carolinas are "adrv" aware, that is if found during bootup adrv will be "loaded".

So while it is not necessary to include adrvxxx.sfs to boot the Carolina's, you may want to also copy adrvxxx.sfs to the flashdrive if you desire to immediately have all the applications it includes.

There may be other pups which are "adrv" aware. When you mount a Pup's ISO, if you see an advrxxx.sfs, you'll have to make a decision whether or not you want to use it.

mikesLr

p.s. Pups are always "being developed". By the time you read this there may be bdrvs and ydrvs; or something else. Know the peculiarities of the Pup you want by reading its thread, or posting questions to that thread.

rcrsn51's technique, however, remains solid. Thanks.

Puppy 4.12 has no zdrive..

Posted: Sat 13 Aug 2016, 12:41
by Pelo
yesterday i tried to remasterize Puppy 4.12 (Toutou Of France) with wireless driver. Fail because Puppy 4.12 has no zdrive..
it's not a nogo item.