Original post:
Every now and again I get posts like this one, or this one, via google news. While those posts --describing the use of unetbootin to create a 'live' USB analogue to a live CD -- may be technically correct, there's just so much more you can do.
In 1 we do the old boring bog-standard 'write live cd to a usb' thingy that you see pasted all over the web, but using cat instead of unetbootin.
In 2 we make a real, bootable installation on a usb drive.
1. Creating a USB version of a live CD -- the boring option
With the current 'hybrid' Debian iso's it couldn't be easier.
THIS WILL WIPE YOUR USB STICK
--- START HERE ---
a. Download the iso
Using jigdo is a good option. Downloading a business-card/netinstall iso is another, if you'll have a working internet connection available.
b. Plug in and mount your USB device and find out the device name of your USB drive.
If it's mounted you can use
df -h
rootfs 93G 36G 54G 40% /
udev 3.9G 0 3.9G 0% /dev
tmpfs 801M 980K 800M 1% /run
/dev/disk/by-uuid/..-10a350f85687 93G 36G 54G 40% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.6G 52K 1.6G 1% /tmp
tmpfs 1.6G 816K 1.6G 1% /run/shm
/dev/sda6 745G 183G 525G 26% /home
/dev/sdc1 2.0G 434M 1.5G 23% /media/XP-KOMKU
or
mount
../dev/sdc1 on /media/XP-KOMKU type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=cp437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks)
to list mounted devices. In my case it's an old 2 G usb stick I used to create a Windows XP installation USB device on.
If you prefer a gui tool, start palimpsest (called Disk Utility in gnome)
It will be something akin to sdb1 or sdc1 etc. That means the device name is /dev/sdb or /dev/sdc, respectively. In our case, it's sdc.
c. Unmount but don't detach the device
You don't want anything else writing to it.
me@beryllium:~/Documents/screengrabs$ umount /dev/sdc1
me@beryllium:~/Documents/screengrabs$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 93G 36G 54G 40% /
udev 3.9G 0 3.9G 0% /dev
tmpfs 801M 976K 800M 1% /run
/dev/disk/by-uuid/..-10a350f85687 93G 36G 54G 40% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.6G 60K 1.6G 1% /tmp
tmpfs 1.6G 820K 1.6G 1% /run/shm
/dev/sda6 745G 183G 525G 26% /home
d. Become root and use cat to write the iso to the USB device
sudo su
And write (assuming that the device name is sdc and you are using the businesscard iso)
cat debian-6.0.3-amd64-businesscard.iso > /dev/sdc
Done.
e. boot from your USB drive and go through the same steps as for a CD.
Plug it in, then start your computer. Hit F12 (or F10 or del or F2) during the bios start-up to select boot medium. Choose to boot from usb. Older BIOSes can't boot from USB.
2. Really INSTALLING Debian on a USB
You can use either virtualbox or quemu for this. Here I show how to use virtualbox.
[NOTE: there's a leaner, faster, better way described here: http://verahill.blogspot.com/2013/03/361-installing-debian-on-usb-stick-from.html ]
- Note that a tiny 2 Gb USB stick isn't suitable for a full Debian + Gnome installation. It may, however, work well with e.g. openbox and xmonad. Or just work in the terminal -- use mutt for email, mcabber for chat, elinks for http/www etc.
- Here I show how to install using the businesscard iso, but I've done this with the regular Debian DVD version in the past.
- Also, few USB devices operate at 480 Mbps -- so be prepared that installation via virtualbox onto a USB device will take considerably longer than a regular installation.
- Solid state devices degrade with I/O, so use your USB stick for back-up use during e.g. travel etc. Don't trust the integrity of it.
There are a few good reasons for installing a full linux version on a thumb drive or a regular but external harddrive:
* a thumb drive will allow you too carry an independent OS with you, allowing you to e.g. temporarily borrow a computer from a friend but running your own system. An installation, as opposed to a 'live cd', allows you to customise the setup and install programs. USB 2 is quite slow, and many thumb drives are slower than that, so you're probably better off running a light system than a full on gnome-shell desktop. That's not so say that you can't -- I have.
* installing onto a usb-connected harddrive will allow you to setup and prepare headless boxes or systems without a direct internet connection.
First you need to install virtualbox, which is available in the debian repos (sudo apt-get install virtualbox virtualbox-guest-additions), and -- in order to enable USB 2 support -- the "VirtualBox 4.1.8 Oracle VM VirtualBox Extension Pack" from https://www.virtualbox.org/wiki/Downloads
Start virtualbox and go to File/Preferences/Extensions to install the extension pack you downloaded.
--- START HERE ---
Installing debian (or any os) on an external USB stick/drive using virtualbox
a. Start virtualbox and click on New.
b. Click through the Name, Operating System and Version questions, Select a memory size which is reasonable for the intended use and target machine. Give it at least 256 Mb. Don't fret about this step -- on each boot your system will autodetect the amount of available RAM. The next question is the key to the whole undertaking: DO NOT SET A START-UP DISK (or any virtual harddisk)
In the next dialogue box you'll be asked if you want to continue or go back - yes, you want to continue.
c. Your new machine is now ready to be set up. Select it and click on settings; Got to storage, IDE controller and choose a virtual CD/DVD disk file. Select the debian installation iso.
e. You're ready to install! Start the virtual machine, and the installation should start without you having to select boot device. Most of the setting are the same as in any normal install. Pay attention when you come to the Partition Disk dialogue though. Make sure that you're not doing something silly and accidentally deleting something you shouldn't be a-deleting, even though the risks of that are very slim.
Delete the existing partitions and create a new one. I added a tiny swap space too, hoping that this will make the difference between a freeze and a slow crawl on underpowered systems.
f. Continue with the installation as normal.
g. Postscript:
* /dev/sda1 vs UUID. Once you're done with the installation and have shut down your virtualbox, mount the USB drive as a normal thumb drive and have a look at fstab in particular -- if you're using relative paths (e.g. sda) instead of absolute paths using UUID, you may run into problems at some point.
In the screengrab you see that
# / was on /dev/sda1 during installation
UUID=8c0c9c98-e73f-4f5a-b7d7-f91f95c9d8ca / ext4 errors=remount-ro 0 1
Which means we're good.
You may want to comment out
/dev/sda1 /media/usb0 auto rw,user,noauto 0 0
/dev/sda2 /media/usb1 auto rw,user,noauto 0 0
/dev/sda5 /media/usb2 auto rw,user,noauto 0 0
But I haven't in the past and all has been good.
* network interfaces -- you may find that no network interface is configured for you and that no interface shows up when you use ifconfig. Use ip addr to get a list over interfaces. If the interface is e.g. eth2, you may want to edit /etc/network/interfaces and add
auto eth2
iface eth2 inet dhcp
or (the ip's are just examples)
auto eth2
iface eth2 inet static
address 192.168.1.100
gateway 192.168.1.1
netmask 255.255.255.0
And then run sudo service networking restart
That's it. You now have a full installation on either a 'removable' drive or on an HDD which you can install in a desktop/laptop.
Links to this page:
http://vk.com/topic-50603_27808581
http://forum.debian.org.tr/arsiv-konu-391.0-debian-live-usb.html
http://alsamixer.wordpress.com/2012/10/07/installing-debian/
http://cv.uoc.edu/app/phpBB3/viewtopic.php?f=3511&t=20897
http://www.computerbase.de/forum/showthread.php?t=1208228&p=13936928