Installing Damn Small Linux to a USB Flash Drive from your Linux Desktop
Here the steps for doing that:
Minimum size for USB Drive: 128MB.
Save all of your data on your USB to another storage medium, such as a CD/DVD or hard drive.
- Begin by determining the location of your flash drive. It will be something like /dev/sda
fdisk -l
- Check your syslinux version and upgrade it if you want FAT32 support. (Syslinux 2.11 works for FAT16; Syslinux 3.35 works for FAT32). Compile & install the latest syslinux from here.
- If you need to wipe the MBR on the Flash Disk, do it with a command like below. This shouldn't be necessary unless there's another funky bootloader in the MBR (like, if you were experimenting with another bootable USB linux distro).
dd if=/dev/zero of=/dev/sdX bs=512 count=1
( BE *VERY* CAREFUL NOT TO WIPE YOUR HARD DRIVE'S MBR HERE!!!)
Download ms-sys then install and put another MBR in its place:
ms-sys -s /dev/sdX
Another way to put MBR in its place is using 'mbr.bin' 512 bytes file from the Syslinux package:
locate mbr.bin
cat /somepath/share/syslinux/mbr.bin > /dev/sdX
- Run fdisk on /dev/sdX, so it looks like this:
Device Boot Start End Blocks Id System
/dev/sdX1 * 1 1021 253177 b W95 FAT32
Use d to delete existing partitions until none remain.
Use n,p,1 to create a new primary partition. Use a to make it bootable.
Use t,b to make it W95 FAT32. Don't forget to hit a to make it bootable!
Use w to save the changes and exit
- Download the dsl-embedded zipfile.
- Create a FAT16 or FAT32 partition on the pendrive:
- Mount the pendrive & unzip the dsl-embedded.zip file onto this.
- Unmount the pendrive
- Type syslinux -s /dev/sdX1 to make it bootable.
- You can now boot via QEMU (from within Linux or windows), OR as native from the USB drive.
- You can also run DSL from a GRUB bootloader menu on your USB key. This is very useful if you're using DSL as part of a data/system rescue toolkit, as you can include multiple preset configurations of DSL as well as other utilities.
Note: syslinux needs the package "mcopy" included in the package "mtools".
Note: Unfortunately, this method does NOT give a 50MB Linux Distribution because qemu dir
and method is (comparatively) big. You will end up with a 110MB distribution.
Note: The iocharset=utf8 option when mounting the USB stick may result in
the "KNOPPIX/KNOPPIX" not being found upon booting.
Note: This method has been reported not to work under certain conditions
- Download the current.iso dsl-cd image.
- Create an ext2 partition (=> 51MB) on pendrive. Mount it.
mke2fs -v -L "DSL" /dev/
mkdir -p /tmp/pendrive
mount /dev//tmp/pendrive/
where
Note: ext3 is ok too.
- Change to the directory where you mounted the ext2 partition, install GRUB boot loader:
cd /tmp/pendrive/
grub-install --no-floppy --root-directory=. /dev/
Note: Replace
Note 2: This method did not work for me, I used the manual method of running grub and
entered "root (hd1,1)" and "setup (hd1)" (your paths will probably vary).
- Copy the contents of the cd image to the usb drive.
mkdir /tmp/dsl-cd
mount [/path_to/]current.iso /tmp/dsl-cd/ -o loop
cp -vR /tmp/dsl-cd/* /tmp/pendrive/
- While in the same directory - where you mounted the ext2 filesystem - create a menu.lst file for grub in the directory ./boot/grub/menu.lst
cat > /tmp/pendrive/boot/grub/menu.lst << root="/dev/sda1" lang="us">Note: You might have to change (hd0,0) to the correct partition for your USB drive. However,
the default should work on most systems.
- Unmount the filesystem.
- You can now boot from your USB storage device
Method II: Using GRUB as boot loader
Someone found the above process doesn't work and has documented for others
this working process
The Situation:
- Running SLED 10 (Suse)
- The USB key is a 1GB and appears as /dev/sda
- Logged in as root
- The DSL ISO is downloaded to /root/Desktop/dsl-3.3.iso
- Two partitions, the first to use as general USB storage, the second for DSL
- The DSL partition wanted to be ext3 so that Windows doesn't mess it up
- The first partition needs to be the big storage one as Windows doesn't
Here is the procedure:
- fdisk /dev/sda
- d - Delete all partitions on the key
- n - Make a partition
- p - Primary partition for general storage
- 1 - First partition
- 1 - From the first block
- 948 - Most of the space, about 933MB
- n - Make a partition
- p - Primary partition for DSL
- 2 - Second partition
- 949 - Start from the next available sector
- 1012 - To the end of the disk. I give it 64MB
- a - Make the partition bootable
- 2 - Mark the DSL partition bootable
- t - Change the partition type
- 1 - Change partition 1
- b - Change it to Win95 FAT32
- w - Write the changes
- fdisk -l - Gives the following output:
Device Boot Start End Blocks Id SystemYour flash drive should now look like this
/dev/sda1 1 948 954131+ b W95 FAT32
/dev/sda2 * 949 1012 64416 83 Linux
- mkdir /mnt/iso
- mkdir /mnt/usb
- mount -o loop /root/Desktop/dsl-3.3.iso /mnt/iso
- mke2fs /dev/sda2
Note: If you want to have an ext3 filesystem, add the -j flag: mke2fs -j /dev/sda2
- mount /dev/sda2 /mnt/usb/
- cd /mnt/iso
- tar cvf - . | (cd /mnt/usb; tar xvf - )
- mkdir /mnt/usb/boot/grub
- cp /boot/grub/*stage* /mnt/usb/boot/grub/
- cat > /mnt/usb/boot/grub/menu.lst
title Damn Small Linux
root (hd0,1)
kernel /boot/isolinux/linux24 root=/dev/sda1 ro lang=us toram noeject frugal
initrd /boot/isolinux/minirt24.gz
boot
- cd /mnt/usb/
- grub-install --no-floppy --root-directory=. /dev/sda
- cd /root
- umount /mnt/usb
- umount /mnt/iso
- rm -r /mnt/iso
- rm -r /mnt/usb
1 comments:
TOO CONVOLUTED !!!!!
Stick with booting from an ISO till the hacks get all the bugs worked out.
Ive tried this with puppy linux,Slax and D@m small linux.
It's not worth the headache !!!!
Half the time it won't work anyway due to some idiot writing the instructions wrong or #2 you having to fiddle or change the boot config cause the one you were told to use just won't work.
Use a live CD along with a Portable keychain device to save stuff on.
It's clean and it works on any machine without fiddling and pulling your hair out.
Post a Comment