But why?
- DebianDog provides a great environment to further experiment with on-a-stick "appliances".
- Quirky Tahr + DebianDog on the same stick = easy and powerful tools that complement each other + applications.
- Because we can!
This is a fairly simple How-To thanks to the giants, of various heights, who made all the pieces available, including excellent forum threads that explain each piece in detail. Credits go to forum members saintless and fredx181 for DebianDog, to member ETP for Blue Pup, and the list goes on and on...
Quirky Tahr is a fully-installed OS (not a live distro). With Puppy linux it shares look and feel, applications and packages. It also supports ubuntu packages. For this How-To I'm going to use the Blue Pup variant of Quirky Tahr 6.0.5, because Blue Pup includes the Chromium browser to greet users with an engaging tiled screen a la Windows 8 that I personally like, and because installing Blue Pup to a stick is very easy. As of April 2014, Quirky Tahr 6.0.5 is stable and not actively developed. As of May 2014 Blue Pup Version 4 Final is also stable.
DebianDog is a Debian Wheezy live distro that looks like Puppy while retaining full compatibility with Debian linux and its packaging system. With Puppy linux it shares look and feel, and some applications and packages. DebianDog innovates Puppy in many ways, notably by providing easy kernel mixing and remastering, and multiple boot methods. For this How-To I'm going to use live-boot-3x method because it can save persistent data to a partition. As of August 2014 DebianDog is stable and it's actively developed.
Quirky Tahr Links
- Download Blue Pup version 4
- Blue Pup forum thread
- Blue Pup version 4 starts here
- Quirky Tahr forum thread for reference
- Another one (there are many)
- Download DebianDog jwm version
- DebianDog forum thread
- DebianDog live-boot-3x method starts here
- DebianDog developers' thread for reference
- DebianDog utilities thread for reference
- DebianDog how-to thread for reference
- Some familiarity with the linux command line.
- An 8 GB USB stick.
- A working network connection to the Internet.
The finished USB stick will carry 5 partitions as follows:
Note: /dev/sdb refers to the USB stick on my PC. On your PC you might need to change /dev/sdb to /dev/sdX where X represents a letter that identifies your USB stick on your PC. Make sure to replace X with the letter that correctly identifies your USB stick or you could wipe vital data on your other disk drives. The remainder of this guide will use /dev/sdb in lieu of the correct letter for your PC.
Code: Select all
# fdisk -l /dev/sdb
Disk /dev/sdb: 7747 MB, 7747397632 bytes
239 heads, 62 sectors/track, 1021 cylinders, total 15131636 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00060b5d
Device Boot Start End Blocks Id System
/dev/sdb1 * 63 31999 15968+ e W95 FAT16 (LBA)
/dev/sdb2 32768 7837695 3902464 83 Linux
/dev/sdb3 7837696 12031999 2097152 83 Linux
/dev/sdb4 12032000 15130623 1549312 5 Extended
/dev/sdb5 12034048 14131199 1048576 83 Linux
/dev/sdb6 14133248 15130623 498688 82 Linux swap / Solaris
/dev/sdb2 is a 4GB f2fs partition carrying Blue Pup.
/dev/sdb3 is a 2GB ext4 partition carrying DebianDog.
/dev/sdb5 is a 1GB ext2 partition carrying Debian's persistence data.
/dev/sdb6 is a swap partition.
If your USB stick is larger than 8GB you may grow sdb3, sdb5 and sdb6.
A. Installing Blue Pup
- Download Blue Pup blue_pup_v4.img.xz from the link near the top of this post. If you are on Windows download also (Copy of) "win32diskimager-v0.7-binary.zip".
- Install Blue Pup to your USB stick as explained in this post. You may use either the Windows method or the linux method. I used the Windows method. Pros and cons of each methods are further explained in this post.
- Boot your PC from the Blue Pup USB stick. After about 20-30 seconds Chromium should be running and display a full page of colorful tiles. Press Alt-F4 to close Chromium. Be careful not to move your mouse pointer near any screen edge or you will be surprised with a new window of some sort. You will have time to play with Blue Pup later (it's fun!). For now let's tame the "Hot screens sides" utility to avoid any surprises.
- Press Alt+F1 to display the system menu and select cascading entries "Utility" > "Urxvt terminal emulator". In the new terminal window type chmod 644 /root/startup/behave, press ENTER then close the terminal window.
- Press Alt+F1 again and select cascading entries "Shutdown" > "Reboot computer".
- Reboot and get back to the Blue Pup Desktop. Press Alt-F4 to close Chromium. Drag your mouse pointer to the four edges of the screen. Nothing surprising should happen. That indicates that you successfully completed the previous steps. Now you can explore Blue Pup at your leisure then come back to this guide. While you are exploring Blue Pup you may want to follow the Setup Procedure paragraph in this post.
- Close all open windows in Blue Pup.
- Press Alt+F1 and select cascading entries "System" > "Gparted partition manager". Select "sdb USB drive" - or the sdX corresponding to your USB stick; look for a yellow dot on one of the Desktop drive icons, which will tell you the correct sdX for your system. Click OK.
- Right-click the "unallocated" row and create a new 2048 MB ext4 primary partition labelled "DEBIANDOG". Click Add to confirm.
- Right-click the "unallocated" row and create a new extended partition taking up all the free space on the stick.
- Right-click the "unallocated" row and create a new 1024 MB ext2 logical partition labelled "persistence" (check your spelling).
- Right-click the "unallocated" row and create a new linux swap partition taking up the remaining free space on the stick.
- Maximize the window and click Apply on the toolbar. Confirm all prompts. Close and exit GParted when it's finished partitioning.
- Press Alt+F1 and select cascading entries "Utility" > "Urxvt terminal emulator". Type fdisk -l /dev/sdb and verify that the output looks substantially like the first code block in this post. This indicates that you successfully completed the previous steps. Swap partition /dev/sdb6 could be sized slightly differently depending on the USB stick characteristics. It is OK.
Note 1: the default DebianDog kernel isn't optimized for multi-core systems. Switching to a more capable kernel is well-documented in this post. I only tested the default kernel.
Note 2: The DebianDog thread mostly assumes Grub as your boot loader, while this guide uses syslinux. So you need to adapt the examples in the DebianDog threads if you venture outside this guide.
- With the Blue Pup console window still open type tune2fs -O ^has_journal /dev/sdb3 to disable journaling of the ext4 partition thus reducing wear of your USB stick.
- Click once the small desktop icon on the system bar, near the Puppy Menu icon. If nothing happens click once again. All windows will be minimized. Click once the disk icon labelled sdb1 to mount the partition and display its contents in a new ROX filer window that we will call target1. It should show exactly one folder named "boot" and two files, "ldlinux.sys" and "vmlinuz". Right click an empty space in that ROX window and select cascading entries "New" > "Directory" to create a new folder named "live-boot". Click once the new "live-boot" icon to enter the empty folder.
- If you did not configure networking on this Blue Pup before, this is the time to do so. Click once the small network icon in the system bar and follow the wizard to set up your network connection.
- Press the Windows Logo key on your keyboard to start Chromium then download DebianDog-Wheezy-jwm_icewm.iso from the link near the top of this post. Right click the downloaded file icon near Chromium's bottom border and select "Show in Folder" to open ROX filer.
- In ROX filer click once DebianDog-Wheezy-jwm_icewm.iso to mount the ISO file and display its contents in a new ROX filer window that we will call the source. You should see at least two folders "isolinux" and "live" and two files "DebianDog-Installer" and "Examples-boot-codes.txt". Click once folder "live" to display its contents. Now left-click and hold down while dragging file "initrd.img" into the target1 window open on the empty "live-boot" folder. Release the left mouse button and select entry "Copy". Do the same for file "vmlinuz1".
- Minimize all windows. Click once the disk icon labelled sbd3 to mount the partition and display its contents in a new ROX filer window that we will call target2. It should show exactly one folder named "lost+found". Find the minimized source ROX Filer, restore it, go up one folder then drag folder "live" into the target2 window. Select "Copy". Once ROX it's finished copying, close the source and target2 ROX windows.
- Find the minimized target1 window, restore it, go up one folder where folders "boot" and "live-boot" are located and click once folder "boot" then click folder "syslinux" then file "syslinux.cfg". You should see these contents:
Code: Select all
# Boot Blue Pup V4 ETP 5th May 2014 default /vmlinuz root=PARTUUID=00060b5d-02 rootwait rw
- Replace all contents with the following text and save the file:
Code: Select all
# Boot Blue Pup V4 ETP 5th May 2014 #default /vmlinuz root=PARTUUID=00060b5d-02 rootwait rw default vesamenu.c32 timeout 300 prompt 0 label DebianDog menu label DebianDog Wheezy live-boot-3x append root=PARTUUID=00060b5d-02 rootwait initrd=/live-boot/initrd.img boot=live config persistence rw-basemount swapon quickreboot noeject autologin showmounts live-media=removable-usb persistence-media=removable-usb kernel /live-boot/vmlinuz1 label BluePup menu label Blue Pup V4 ETP 5th May 2014 kernel /vmlinuz append root=PARTUUID=00060b5d-02 rootwait rw
- Close the editor window.
- Download the attached file "vesamenu.32.zip", click its icon in the downloads folder, and unzip the contained file "vesamenu.c32" into the same folder of file "syslinux.cfg".
- Close the target1 ROX window.
- Restore the remaining minimized ROD filer window - so many ROX windows! - navigate up to file "DebianDog-Wheezy-jwm_icewm.iso" and click its icon once to unmount the ISO file. Close this ROX window, too. Do not reboot yet.
- Close all open windows in Blue Pup. Click once the disk icon labelled sbd5 to mount the partition and display its contents in a new ROX filer window. It should show exactly one folder named "lost+found". Right click an empty space and select cascading entries "New" > "Blank File", name the file "persistence" (check your spelling) and press Create.
- Click once file "persistence" to edit it and add data persistance criteria. To save all changes while DebianDog is running enter the following text and save the file:
Make sure to enter the last blank line otherwise data persistence won't work.
Code: Select all
/ union
E. Testing
Close all open windows in Blue Pup, press Alt+F1 and select cascading entries "Shutdown" > "Power-off computer". Reboot from the USB stick and you should see a two line menu listing:
Code: Select all
DebianDog Wheezy live-boot-3x
Blue Pup V4 ETP 5th May 2014
When you do see the menu select Blue Pup. Your PC should boot and work as it did before. Shut down and reboot again. Select DebianDog in the boot menu. DebianDog should start into a full graphical display. If you are having problems with missing device drivers (typically for your wifi interface), try pressing ENTER to complete the boot sequence. If you are seeing display problems please don't post to this thread because I can't support the OS per se. Debian is well-documented on the Internet.
Assuming that DebianDog is working on your PC, now test persistence. Open a ROX filer window from its desktop icon and create a new file in your home folder. For instance create file "TEST" in folder "~". Press Alt+F1 and select cascading entries "Shutdown" > "Reboot". Select DebianDog in the boot menu, wait for the graphical Desktop, open ROX filer again and, if persistence has worked, you should find file "TEST" where you created it. Congratulations! You now have a dual-boot DebianDog/Blue Pup USB stick ready for your next projects.
If instead you couldn't find the test file then carefully check that /dev/sdb5 is labelled "persistence" and that it contains file "persistence.conf" with two lines inside:
/ union