How to Make a Puppy Flash Drive using Another Linux

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

How to Make a Puppy Flash Drive using Another Linux

#1 Post 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"

User avatar
darkcity
Posts: 2534
Joined: Sun 23 May 2010, 19:16
Location: near here
Contact:

#2 Post by darkcity »

This is a well written guide, would you mind if I added it to the PUppy wiki?

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#3 Post by Aitch »

darkcity - good work on the wiki

thanks

Aitch :)

User avatar
darkcity
Posts: 2534
Joined: Sun 23 May 2010, 19:16
Location: near here
Contact:

#4 Post by darkcity »

its a pleasure, hopefully its usefulness will keep growing ; -)

sacsdu
Posts: 4
Joined: Mon 25 Mar 2013, 09:59

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

#5 Post 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.

User avatar
darkcity
Posts: 2534
Joined: Sun 23 May 2010, 19:16
Location: near here
Contact:

#6 Post 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

sacsdu
Posts: 4
Joined: Mon 25 Mar 2013, 09:59

#7 Post 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.

Chases_Kangaroos
Posts: 27
Joined: Tue 20 Jan 2015, 04:58

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

#8 Post 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.

User avatar
bigpup
Posts: 13886
Joined: Sun 11 Oct 2009, 18:15
Location: S.C. USA

#9 Post 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.
The things they do not tell you, are usually the clue to solving the problem.
When I was a kid I wanted to be older.... This is not what I expected :shock:
YaPI(any iso installer)

User avatar
mikeslr
Posts: 3890
Joined: Mon 16 Jun 2008, 21:20
Location: 500 seconds from Sol

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

#10 Post 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.

Pelo

Puppy 4.12 has no zdrive..

#11 Post 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.

Post Reply