IMPORTANT:
determine the correct device name (sdX) of the target device to work on, via the command-line interface, using the latest version of
util-linux:
The following procedures assume that one is running GNU+Linux. If one wishes to use Microsoft Windows go to
Appendix below.
Select either option A, B, C or D:
-
Option A
- operating system installation
-
Option B
- boot-loader installation
- operating system installation
-
Option C
- file-system creation
- boot-loader installation
- operating system installation
-
Option D
- partition creation
- file-system creation
- boot-loader installation
- operating system installation
This step is optional, i.e. only proceed if one does not wish to keep the existing
partition structure on the target device X.
Install | the latest version of parted
Display any existing partition structure | on the target device X:
Un-mount any existing partition XY on the target device | :
Create a partition table (disklabel) | on the target device X
WARNING - access to all existing files on the target device will be lost
parted /dev/sdX mklabel gpt print
Create a partition | (partitioning) on the target device X (where set 1 defines partition 1 of device X to be the boot partition; and in this example just one partition is created):
TARGET_DEV=/dev/sdX
parted -a opt "${TARGET_DEV}" mkpart primary ext4 8 100% set 1 boot on && parted "${TARGET_DEV}" set 1 legacy_boot on && parted "${TARGET_DEV}" disk_set pmbr_boot on print
Creating a new file-system (formatting) is optional, i.e. only proceed if one does not wish to keep the existing
file-system structure on the target partition.
WARNING - all data on the target partition will be over-written (destroyed)
How to format partition Y of the target device X:
- For EXT4 file-system creation {requires the latest version of e2fsprogs}:
PARTITION_NAME=system
TARGET_DEV=/dev/sdXY
sudo /sbin/mkfs.ext4 -c -b 4096 -m 0 -L "${PARTITION_NAME}" -O dir_index,extents,filetype,^has_journal,large_file,sparse_super,uninit_bg -E stride=4,stripe-width=256 -v "${TARGET_DEV}"
- For MS-DOS FAT32 file-system creation:
PARTITION_NAME=system
TARGET_DEV=/dev/sdXY
sudo mkdosfs -v -n "${PARTITION_NAME}" -F 32 "${TARGET_DEV}"
- For MS-DOS FAT16 file-system creation:
PARTITION_NAME=system
TARGET_DEV=/dev/sdXY
sudo mkdosfs -v -n "${PARTITION_NAME}" -F 16 "${TARGET_DEV}"
-
Install a recent version of the boot-loader SYSLINUX software package to one's actual operating system in use:
- syslinux package
- installing this package merely makes available the SYSLINUX files for one's use; it does not replace any of the existing boot-loader files which one's actual operating system makes use of for booting (starting-up) itself
- initiating the following procedure to install the boot-loader to the target device requires one to perform it to completion; this ensures that no remnants of older SYSLINUX versions remain on the target device
- For B.I.O.S. Systems
-
Install the boot-loader boot sector code to the target device X
/bin/dd bs=440 conv=fsync,notrunc count=1 seek=2 if=/usr/share/syslinux/bios/gptmbr.bin of="${TARGET_DEV}" ; sync
-
Install the boot-loader c32 modules to the target device X at only one of these locations /dev/sdXY/{boot,boot/syslinux,syslinux} by copying them from /usr/share/syslinux/bios
/bin/mount /dev/sdXY /mnt/sdXY && /bin/mkdir -p /mnt/sdXY/boot/syslinux && cp -a -f --remove-destination /usr/share/syslinux/bios/{libcom32,libutil,linux,vesamenu}.c32 /mnt/sdXY/boot/syslinux ; sync
Those four modules listed are the minimum required. If extra functionality is required, (e.g. chain.c32, gfxboot.c32, hdt.c32, libgpl.c32, libmenu.c32, pwd.c32, whichsys.c32), as determined by the contents of syslinux.cfg, copy the extra, relevant files from /usr/share/syslinux/bios
cp -a -f --remove-destination /usr/share/syslinux/bios/{chain,gfxboot,hdt,libgpl,libmenu,pwd,whichsys}.c32 /mnt/sdXY/boot/syslinux
-
Install the boot-loader configuration file syslinux.cfg to the target device X by copying it to either /boot, /boot/syslinux or /syslinux
This file is user-created and user-defined. Here is a sample syslinux.cfg file, which would need to be edited for one's personal computing environment.
-
Install the boot-loader system files ldlinux.sys and ldlinux.c32 to the target device X, using either extlinux or syslinux:
- For EXT file-systems, ensuring that it is mounted first:
/bin/mount /dev/sdXY /mnt/sdXY && /bin/mkdir -p /mnt/sdXY/boot && /sbin/extlinux -i -s /mnt/sdXY/boot ; sync
- For FAT file-systems:
/bin/mkdir -p /mnt/sdXY/boot && /usr/bin/syslinux --directory /boot -i -s /dev/sdXY ; sync
TIP - Removing ldlinux.sys without formatting
The ldlinux.sys file has the immutable attribute set, which prevents it from being deleted or overwritten; this is because the sector location of the file must not change or else syslinux or extlinux has to be executed again
chattr -V -i /boot/ldlinux.sys && rm -f /boot/ldlinux.sys ; sync
- For U.E.F.I. Systems
{https://wiki.archlinux.org/index.php/Syslinux#UEFI_Systems}
- Mount the target device
- Mount the ISO (or ZIP) file
- Copy from the ISO (or ZIP) image to the target device either all the files, or, just these essential ones: vmlinuz, initrd.gz, and all those with the extension .sfs (if more than one Puppy version is to be installed ensure that they are each contained within their own directory)
- Ensure that the computer's B.I.O.S. is configured to follow the correct boot sequence
- Re-boot (re-start) the computer with the flash memory device connected
- When shutting down the system there may be the option to create a personal storage (pupsave) file which must be chosen if personal settings and configuration are to be saved (persistence)
Appendix
- format the drive or partition with FAT32
- download and extract the latest syslinux.zip file to the Cdrive, i.e. C:\syslinux
- go to directory C:\syslinux\win32\
- with administrator privileges run the syslinux command to make the target device bootable: (where X is the drive letter for the target drive or partition)
- open the Puppy ISO (or ZIP) file to view its contents, using e.g. 7-zip (it is important that the original file names be kept) and copy to the target device the files: vmlinuz, initrd.gz, and all those with the extension .sfs
- create a directory syslinux on the target device which contains the following files:
- a boot-loader configuration file {sample syslinux.cfg (for flash memory drives only; read Step 3 above)}
- the required boot-loader c32 modules copied from C:\syslinux (read Step 3 above)
- follow the instructions at LiveDVD Appendix 3
- re-boot (re-start) the computer with the flash memory device connected
- if the operating system does not load (start), repeat the installation on a FAT16 formatted partition
- Installing the boot-loader to the internal hard disk drive (where Microsoft Windows resides)
- Installing the boot-loader to an external drive
When making an installation to an internal H.D.D. with an existing operating system, one has the option to either allow that operating system to remain or be removed. Only remove the existing operating system if the computer is more than 3 years old since most computer manufacturers cease to provide
new B.I.O.S. versions after that time. If the intention is to remove the existing operating system, regardless of computer age, then ensure to check for and install any B.I.O.S. updates first.
If the Puppy files are to be appended, by making a
frugal installation only of Puppy, then this would involve one of the following:
- either making a new partition for Puppy (not recommended)
- or, using an existing partition for Puppy (recommended)
One can place a frugal installation within a pre-existing Windows installation. The save file, although itself is comprised of a Linux file-system, may reside on a F.A.T. or N.T.F.S. partition; which is why a frugal installation is also called a "co-exist" installation. A full hard disk drive installation on a F.A.T. partition is not possible because F.A.T. partitions do not support Linux symbolic links.
There is an option to install from within Microsoft Windows using the relevant file from here:
http://www.mediafire.com/?5ah0d0rzcz5cc
- older Puppy versions will not boot from an external flash memory drive if the internal H.D.D. has been removed:
Posted on 23 Apr 2011, 22:54 by perthie
USB Install Issue?
I notice that you still haven't commented on this issue. A machine
missing an internal hard drive can no longer be booted from a flash
drive. The new search procedure fails to find the sfs file on the flash
drive.
Posted on 24 Apr 2011, 8:20 by BarryK
Re no boot usb
I have written it down in my to-do list.
http://bkhome.org/blog/?viewDetailed=02231
- install the latest available version of helper program Grub4DosConfig
- install the boot code to the M.B.R. of the target device X:
bootlace.com --time-out=0 /dev/sdX
- install the boot system file grldr by placing it on the target device
- install the boot configuration file menu.lst, or update an existing one, by using Grub4DosConfig: Menu > System > Grub4Dos
- follow the additional instructions in Appendix 3 at LiveDVD
References
Legal Disclaimer: All original material (documentation & software packages) directly accessible from this page is produced in good faith; and the user, not the author, is fully liable.
Copyright Policy: All original material (documentation & software packages) directly accessible from this page may only be freely distributed at will under this Creative Commons Attribution License.