Language Selection

English French German Italian Portuguese Spanish

The Lazy Guide to Installing Knoppix on a USB Key

Filed under
Howtos

Knoppix, the famous live Linux CD that practically started the live CD trend, needs no introduction to most people. One of the things that's so great about it is that you can take it with you and boot to a familiar Linux environment on almost any modern computer, without touching the OS that's already installed on it.

Of course, it can be even more portable when it runs entirely off of an inexpensive USB key. So let's install it to a 1 GB USB key, and create a persistent home directory in which to store files. Only let's do it the lazy way, and keep use of the command prompt to a bare minimum.

You will need a copy of the latest Knoppix CD (v5.1.1 as of this writing) and, of course, a 1 GB USB key. If there's any data on that key you want to keep, save it before starting, because the key's going to get repartitioned (and reformatted) and any existing data will get wiped out.

A note about the mysterious art of booting from USB keys. Some computers can do it, and some can't. (Now that was a really technical statement, wasn't it?) The newer the computer's BIOS, the greater the possibility that it will work.

Generally speaking, there are two ways of booting from a USB key. The first way, the computer treats it as if it were booting from a Zip drive. This was the first way to go about it, and it requires special partitioning (so that your USB key's partition layout actually resembles that of a Zip drive). If your computer can only boot from a USB key using Zip drive emulation, then a saavy user's written a very good how-to about how to use a script on the Knoppix CD to do the partitioning, and posted it to the Knoppix.net wiki. My how-to owes him a debt, because I used some of his ideas.

The current way is to simply treat the USB key as if it were a hard drive. This is the method we'll use here, due to its simplicity.

Also, note that Damn Small Linux (a tiny, 50 MB Knoppix-based distro) includes an easy-to-use script that will format and put DSL onto a USB key, using either Zip drive emulation or hard drive emulation. To avoid frustration, you might want to use Damn Small Linux to see if your computer actually will boot from a USB key as if it were a hard drive before performing all these steps!

To get started, boot from the Knoppix CD. When the (KDE) desktop is up and running, the first thing to do is to set a root password (by default, there is none) by clicking on the penguin icon next to the K menu and choosing "Set password for root" from the menu.


1. Creating a root password


2. Creating a root password, continued

Next, insert your USB key. KDE will most likely pop up a window asking if you want to either "Open in a new window" (i.e. browse the files on it), or "Do nothing." Choose to do nothing (or click Cancel), because we don't want it mounted just yet. The key's icon should show up on the desktop, usually as sda1 or sdb1. Carefully make note of its name (in the form "sdxy") for the next step.

Go to the K Menu > System and choose GParted, a GUI-based partition editor, enter your root password when prompted, and choose your USB key from the drop-down menu to the right of the toolbar. Delete the partition on it (you did back up your data, didn't you?) and create two new partitions, both FAT16. Partition one should be 750 MB; the second should take up the remaining space. (Make 100% sure you're partitioning your USB key, not your hard drive!) When you're done, the results should look similar to this:


3. Preparing for partitioning

When you're ready, click the Apply button.

Next, right-click on Partition #1 to bring up a context menu, and choose "manage flags." Set the flag on your new partition to "boot."


4. Setting the boot flag

When you're all done, it should look about like this in GParted:

5. Done partitioning

Again, at this point KDE may pop up two windows (for the two partitions you created) asking if you want to either see what's on your USB key or not. Tell it "no." Next, bring up a console window, type "su" to get root, and install syslinux on the USB key, using the command

syslinux /dev/sda1

(substitute the real name of your USB key's first partition for "sda1" here, if it's not sda1).


6. Installing syslinux

There are some files you'll now need to copy to your USB key's first partition, so go ahead and mount it and make it writeable. You do that by right-clicking on the key's desktop icon to bring up a context menu, and first select "mount" from the menu, and then "change read/write mode," pressing "Yes" when it asks for confirmation. At this point, there should be one file on your USB key's first partition, named "ldlinux.sys."


7. Mount the USB key's first partition


8. Make it writeable

Now we need to copy files off of the Knoppix CD onto the first partition of the USB key. Start up Konqueror as root by choosing K Menu > System > More Applications > File Manager - Super User Mode. Give it your root password when asked.


9. Start Konqueror as root

Open the /cdrom/boot/isolinux directory, select all the files in it, and copy them to the root of your USB key.


10. Copying files - 1

Next, rename the "isolinux.cfg" file on the USB key to "syslinux.cfg" and delete the unneeded file, "isolinux.bin." Continuing on, copy the "KNOPPIX" directory and the files at the root of /cdrom to the USB key.


11. Copying files - 2

It'll ask you if you want to overwrite "cdrom.ico" and "index.html". Let it, by clicking "Overwrite All". This step will take a while, since you're copying a file that's almost 700 MB in size to your USB key.


12. Copying files - 3

When that's finally done, you can make some changes to "syslinux.cfg," which is (as you might guess) the configuration file for syslinux. Select it in Konqueror, which (unless you've changed your defaults) will bring up KWrite (a text editor). At the end of the second line, the one that begins with "APPEND," try adding "dma noeject noprompt home=/media/sda2/knoppix.img", which does the following:

  • "dma" turns on dma settings for all hard drives and CD-ROM drives, which can speed things up
  • "noeject" and "noprompt" makes it so that Knoppix won't try to eject the CD (since you're using a USB key) and won't prompt you to remove the CD before rebooting
  • "/home=/media/sda2/knoppix.img" will load your soon-to-be-made persistent disk image

Those of you who've used Knoppix will recognize those as Knoppix "cheatcodes." Putting them here means you won't have to type them at the "boot:" prompt.


13. Modify syslinux.cfg

Almost done! Now to make the persistent disk image, which does more than just store your personal files from /home/knoppix -- it also saves changes you've made to configuration files, and even allows you to install programs, just as if you were running from a hard drive. (Granted, 200 MB isn't that much room.) To start, go to the Knoppix menu (the one with the penguin icon next to the K Menu) and select Configure > Create a persistent KNOPPIX disk image.


14. Create a persistent disk image - 1

When it asks you which partition to write it to, choose the second partition on your USB key. (I know the partitions are labelled "vfat" in the screenshot, but the partitions really are formatted as FAT16. Trust me.)


15. Create a persistent disk image - 2

It'll ask you to tell it how large to make the persistent disk image. Choose a number close to, but not completely filling, the partition's capacity. 200 MB should be good.


16. Create a persistent disk image - 3

Now you're (finally) done and ready to boot from the USB key. You will have to sort of babysit the boot process, because there's a dialog box that asks if you want to actually use your persistent home that comes up. (Then again, maybe you don't want to use it all the time, especially if you're using more than one computer.) You also have to explicitly give it permission to write to your persistent home. (Hint: Use the arrow keys to move; use the spacebar to select.)

About BIOS settings and booting from a USB key: On one test machine, which has a Phoenix AwardBIOS, I have to go into the CMOS setup utility, to Advanced BIOS Features, and to Hard Disk Boot Priority, then press "Page Up" until the "USB-HDD0" entry is at the top, and then save my settings and exit. After that, it'll boot from the USB key, if it finds one. (If not, it boots from the hard drive.)

On my other test machine, which has an AMI BIOS, all I have to do is press F11 to call up a menu asking which device I wish to boot from at boot time. Naturally, this is much more convenient.

That's all, folks! Have fun. (And those of you with huge 8 GB USB keys, consider installing the DVD version of Knoppix, which has the kernel headers included -- which you need in order to install such nifty things as proprietary video drivers.)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Clarification in Article

I have followed the instructions and got a little confused here.
isolinux is a folder and has files in it. Knoppix is fighting me and not letting me copy the files, but copies the entire folder with the files. Is this right?

Open the /cdrom/boot/isolinux directory, select all the files in it, and copy them to the root of your USB key.

Also I am getting a write error when trying to edit and make the changes you have documented to "syslinux.cfg,"
It tells me it is not possilbe to write to file///media/sda1/isolinux/syslinux.org

I tried to complete the instructions with the isolinux folder being in /dev/sda1/isolinux (as a folder) but get an error can not find isolinux. You just get the boot prompt. I tried knoppix home=/dev/sda2 but it did not like that either.

Can you help me out?

re: Clarification in Article

Please make sure a) you know the names of your USB key's partitions (sda1/sda2? sdb1/sdb2?); Cool you've got your USB key partitions mounted read-write; and c) you've started Konqueror as root.

You'll want to copy the files in the isolinux directory (not the directory itself) to the root level of your USB key.

Truth be told, it's easier to do this at the bash prompt. For example (as root, and assuming the first partition on your USB key is "sda1"):

# cd /media/sda1
# cp -av /cdrom/boot/isolinux/* .
(don't forget the dot "." at the end)
# mv isolinux.cfg syslinux.cfg
# rm -f isolinux.bin

(The "#" represents the root prompt; don't type it.)

And to edit "syslinux.cfg", try doing it using mcedit, as root, also in a console.

(Trying to be lazy sometimes has its drawbacks. I admit to running "kcontrol" as root and changing the mouse setting to double-click to open files before doing anything with Konqueror. Makes it much easier to select files -- instead of unintentionally opening them -- that way.)

I had the same problem

What I did was save a new file called isolinux.cfg. Then I deleted the syslinux.cfg file and renamed the new isolinux.cfg to syslinux.cfg

Upon finishing, I rebooted and the key booted and I got as far as the bootup screen that says hit enter to start knoppix or F2 or F3 for help or boot options. and there it sits. Sad Any ideas? Could this have something to do with the appended options? dma perhaps? Any help running this down would be greatly appreciated as I've been trying to get linux on a stick now for days. This is as close as I've been able to get so I'm assuming it's something simple because the stick does boot. (UNlike the attempts with the Fedora approach). Many thanks for the great writeup, and TIA for any help running down the glitch!

Part 2

U of H student Tom

I also tried to edit the syslinux.cfg and get the same message. Seems like some type of security on the file.

Part 3

U of H student Tom
I right clicked on the file and went to properties and clicked on permissions gave everyone read and write and still get an error. "Could not change permissions".

Part 4

I went to the Shell console
typed in su
got to root@Knoppix

cd /media/sda1(Worked)

cp -av /cdrom/boot/isolinux/* . (don't forget the dot "." at the end)

balder.img -> cp: cannot create regular file Read only file system.
boot.cat same
boot.msg same

cp: overwrite './cdrom
.ico, overriding mode 0555?

Files did not copy.

mv isolinux.cfg syslinux.cfg
rm -f isolinux.bin

Seems like the CD being in read only mode is causing issues. Should I have loaded it to RAM?

U of H student Tom

Got it

I rebooted the machine and this time used the USB Knoppix copy I had versus running the CDROM version, went to root changed to SU, check the mounting status of the TOBE USB stick, updated to write access and ran the commands and it worked.

It works fine!

Some nice ideas there. Thank you

Escolar

Knoppix

When Knoppix was first released it was heralded as revolutionary in the Linux world. Its autodetection and configuration capabilities were unsurpassed. Many of my colleagues remarked that if 'KNOPPIX can't do it, Linux can't do it'. Theoretically, one would be able to get a Knoppix CD, pop it into an arbitrary system, run it, save one's data to a partition, USB stick, etc....), reboot and the existing system would be left completely as it was before the CD was placed in the system.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
don't buy World of Warcraft Gold, make'em.

Thanks

Hello !

Thank you very much for the information. I need all this information to do something..Thanks again Knoppix

___________________________________
Libros Gratis

need a step-by-step note for booting knoppix DVD from USB flash

First of all, thanks knoppix and this nice step-by-step note for installing knoppix boot image onto a USB pendrive.

I downloaded a Knoppix 5.2.0 DVD and want to put it on a 8GB USB pendrive. I followed the steps in this note and failed because of the size limit for a FAT16 partition.

There are two really huge files under the KNOPPIX directory on the knoppix 5.2.0 DVD: KNOPPIX (2.0 GB) and KNOPPIX2 (2.1 GB). I can not copy them into one FAT16 partition which was made to 4GB on my pendrive. 4GB is already the ultimate limit for a FAT16 partition.

Is there a note for making a Knoppix DVD to boot from high-capacity pendrive? Moreover, is the FAT16 partition a must for booting from a USB pendrive? Is it possible to make the partition to be ext2? I appreciate in advance for your kind help!

Great help

Thanks a lot, it was of a great help for me.
I made a change in step 4 where I created only one partition (4Gb) in FAT32, it's working well.... seems to.

thanks again,

+--
¦ All computers wait at the same speed
+----

partition problems

If you go with one partition, do you lose your persistent storage option?

I have a 4MB and have been messing with it too much, with no luck. If I make a second partition, I cannot mount it in winXP to use it there (I tried both FAT16 and FAT32 -- of course, ext2 wouldn't work either). It boots ok, but that's about it.
Is there any way to get persistent storage with a bigger USB drive and allow WinXP to read/write?
Kurt

I think this guide was

I think this guide was written especially for even lazy users like me Smile
I understood almost all of that, but file syslinux.cfg
it still insufficient clear for me.
Is "timeout" string really have influence for anything?

No Such Device

I created 2 partitions inside an extended partition, on a 2 GB USB stick. I didn't get the "manage flags" option so I set the 1st partition to "Active", which I guess is the same as boot. The properties in Knoppix identified the USB drive as sdc1, yet when I ran the command "syslinux /dev/sdc1" from root, I got: "no such device".

sdc1

I am using Knoppix 5.1 & booted the live disk, with the USB stick already in. I was able to set permissions, mount & un-mount the device & create partitions, so I guess it must be mounted.

My knowledge of Linux is basic, so I don't know how to hotplug.

News NOT Support

Tuxmachines is a NEWS (and Review) site - perhaps you'd find answers to your tech support questions on a TECH SUPPORT Site.

http://www.knoppix.net/forum/
http://www.linuxforums.org/forum/knoppix-help-forum/
http://www.knoppixforum.de/
http://www.google.com/

Re: Support.

Point taken about the forums, anyway it still didn't work so I gave up. However the method I found below worked, on re-start I had to remove & re-insert the stick, to make the PC boot from USB, (hotplug?):

http://www.pendrivelinux.com/2007/01/01/usb-knoppix-510/

The home-page of the above site, has a list of USB install tutorials for various Linux distros.

re: support

I think what Vonskippy meant was that although your support questions are more than welcomed at Tuxmachines, they will probably receive faster and perhaps more accurate responses at forums that specialize in the software about which you're asking.

Superb Tutorial!

White modifying the KNOPPIX configuration file, those having the flash drive as 'sdbX' please use 'sdbX' in place of 'sdaX'.

Had a charm bro... Thank!

Awesome

Thank you very much for this EXCELLENT tutorial.
I'm kind of new to Knoppix and Linux on the whole and this tutorial provided me structured and clear information and screenshots, exactly what I needed.
I've tried two other similar tutorials just yesterday, without success. This one did the trick!
I swear, if I could, I'd start humping you right away from happiness. *joke* =D
Thanks once again!
--
[sCYTHe] aka 88scythe

Installing Knoppix 6.2 from DVD on a 16GB USB Key

I followed your instructions verbatim, until I came
to a show stopper problem.
You say at step 11:

10. Copying files - 1

Next, rename the "isolinux.cfg" file on the USB key to "syslinux.cfg" and delete the unneeded file, "isolinux.bin." Continuing on, copy the "KNOPPIX" directory and the files at the root of /cdrom to the USB key.
-----------------------------------------

Well, on the knoppix dvd, the directory KNOPPIX is almost 4GB in size.

Our root partition on the USB stick is 750MiB.

Could you be a little more exact as to which files in the
KNOPPIX directory shoudl be copied to our USB root partition?

Cheers,

JD

More in Tux Machines

Red Hat's "DevOps" Hype Again and Analysis of last Night's Financial Results

OSS Leftovers

  • Deutsche Telekom and Aricent Create Open Source Edge Software Framework
    Deutsche Telekom and Aricent today announced the creation of an Open Source, Low Latency Edge Compute Platform available to operators, to enable them to develop and launch 5G mobile applications and services faster. The cost-effective Edge platform is built for software-defined data centers (SDDC) and is decentralized, to accelerate the deployment of ultra-low latency applications. The joint solution will include a software framework with key capabilities for developers, delivered as a platform-as-a-service (PaaS) and will incorporate cloud-native Multi-access edge computing (MEC) technologies.
  • A Deeper Look at Sigma Prime's Lighthouse: An Open-Source Ethereum 2.0 Client
  • Notable moments in Firefox for Android UA string history
  • Dweb: Creating Decentralized Organizations with Aragon
    With Aragon, developers can create new apps, such as voting mechanisms, that use smart contracts to leverage decentralized governance and allow peers to control resources like funds, membership, and code repos. Aragon is built on Ethereum, which is a blockchain for smart contracts. Smart contracts are software that is executed in a trust-less and transparent way, without having to rely on a third-party server or any single point of failure. Aragon is at the intersection of social, app platform, and blockchain.
  • LLVM 7.0.0 released
  • Parabola GNU/Linux-libre: Boot problems with Linux-libre 4.18 on older CPUs
    Due to a known bug in upstream Linux 4.18, users with older multi-core x86 CPUs (Core 2 Duo and earlier?) may not correctly boot up with linux-libre 4.18 when using the default clocksource.
  • Visual Schematic Diffs in KiCAD Help Find Changes
    In the high(er)-end world of EDA tools like OrCAD and Altium there is a tight integration between the version control system and the design tools, with the VCS is sold as a product to improve the design workflow. But KiCAD doesn’t try to force a version control system on the user so it doesn’t really make sense to bake VCS related tools in directly. You can manage changes in KiCAD projects with git but as [jean-noël] notes reading Git’s textual description of changed X/Y coordinates and paths to library files is much more useful for a computer than for a human. It basically sucks to use. What you really need is a diff tool that can show the user what changed between two versions instead of describe it. And that’s what plotgitsch provides.

LWN's Latest (Today Outside Paywall) Articles About the Kernel, Linux

  • Toward better handling of hardware vulnerabilities
    From the kernel development community's point of view, hardware vulnerabilities are not much different from the software variety: either way, there is a bug that must be fixed in software. But hardware vendors tend to take a different view of things. This divergence has been reflected in the response to vulnerabilities like Meltdown and Spectre which was seen by many as being severely mismanaged. A recent discussion on the Kernel Summit discussion list has shed some more light on how things went wrong, and what the development community would like to see happen when the next hardware vulnerability comes around. The definitive story of the response to Meltdown and Spectre has not yet been written, but a fair amount of information has shown up in bits and pieces. Intel was first notified of the problem in July 2017, but didn't get around to telling anybody in the the Linux community about it until the end of October. When that disclosure happened, Intel did not allow the community to work together to fix it; instead each distributor (or other vendor) was mostly left on its own and not allowed to talk to the others. Only at the end of December, right before the disclosure (and the year-end holidays), were members of the community allowed to talk to each other. The results of this approach were many, and few were good. The developers charged with responding to these problems were isolated and under heavy stress for two months; they still have not been adequately thanked for the effort they put in. Many important stakeholders, including distributions like Debian and the "tier-two" cloud providers, were not informed at all prior to the general disclosure and found themselves scrambling. Different distributors shipped different fixes, many of which had to be massively revised before entry into the mainline kernel. When the dust settled, there was a lot of anger left simmering in its wake.
  • Writing network flow dissectors in BPF
    Network packet headers contain a great deal of information, but the kernel often only needs a subset of that information to be able to perform filtering or associate any given packet with a flow. The piece of code that follows the different layers of packet encapsulation to find the important data is called a flow dissector. In current Linux kernels, the flow dissector is written in C. A patch set has been proposed recently to implement it in BPF with the clear goal of improving security, flexibility, and maybe even performance.
  • Coscheduling: simultaneous scheduling in control groups
    The kernel's CPU scheduler must, as its primary task, determine which process should be executing in each of a system's processors at any given time. Making an optimal decision involves juggling a number of factors, including the priority (and scheduling classes) of the runnable processes, NUMA locality, cache locality, latency minimization, control-group policies, power management, overall fairness, and more. One might think that throwing another variable into the mix — and a complex one at that — would not be something anybody would want to attempt. The recent coscheduling patch set from Jan Schönherr does exactly that, though, by introducing the concept of processes that should be run simultaneously. The core idea behind coscheduling is the marking of one or more control groups as containing processes that should be run together. If one process in a coscheduled group is running on a specific set of CPUs (more on that below), only processes from that group will be allowed to run on those CPUs. This rule holds even to the point of forcing some of the CPUs to go idle if the given control group lacks runnable processes, regardless of whether processes outside the group are runnable. Why might one want to do such a thing? Schönherr lists four motivations for this work, the first of which is virtualization. That may indeed be the primary motivation, given that Schönherr is posting from an Amazon address, and Amazon is rumored to be running a virtualized workload or two. A virtual machine usually contains multiple processes that interact with each other; these machines will run more efficiently (and with lower latencies) if those processes can run simultaneously. Coscheduling would ensure that all of a virtual machine's processes are run together, maximizing locality and minimizing the latencies of the interactions between them.
  • Machine learning and stable kernels
    There are ways to get fixes into the stable kernel trees, but they require humans to identify which patches should go there. Sasha Levin and Julia Lawall have taken a different approach: use machine learning to distinguish patches that fix bugs from others. That way, all bug-fix patches could potentially make their way into the stable kernels. Levin and Lawall gave a talk describing their work at the 2018 Open Source Summit North America in Vancouver, Canada. Levin began with a quick introduction to the stable tree and how patches get into it. When a developer fixes a bug in a patch they can add a "stable tag" to the commit or send a mail to the stable mailing list; Greg Kroah-Hartman will then pick up the fix, evaluate it, and add it to the stable tree. But that means that the stable tree is only getting the fixes that are pointed out to the stable maintainers. No one has time to check all of the commits to the kernel for bug fixes but, in an ideal world, all of the bug fixes would go into the stable kernels. Missing out on some fixes means that the stable trees will have more security vulnerabilities because the fixes often close those holes—even if the fixer doesn't realize it.
  • Trying to get STACKLEAK into the kernel
    The STACKLEAK kernel security feature has been in the works for quite some time now, but has not, as yet, made its way into the mainline. That is not for lack of trying, as Alexander Popov has posted 15 separate versions of the patch set since May 2017. He described STACKLEAK and its tortuous path toward the mainline in a talk [YouTube video] at the 2018 Linux Security Summit. STACKLEAK is "an awesome security feature" that was originally developed by The PaX Team as part of the PaX/grsecurity patches. The last public version of the patch set was released in April 2017 for the 4.9 kernel. Popov set himself on the goal of getting STACKLEAK into the kernel shortly after that; he thanked both his employer (Positive Technologies) and his family for giving him working and free time to push STACKLEAK. The first step was to extract STACKLEAK from the more than 200K lines of code in the grsecurity/PaX patch set. He then "carefully learned" about the patch and what it does "bit by bit". He followed the usual path: post the patch, get feedback, update the patch based on the feedback, and then post it again. He has posted 15 versions and "it is still in progress", he said.

PostgreSQL 11: something for everyone

PostgreSQL 11 had its third beta release on August 9; a fourth beta (or possibly a release candidate) is scheduled for mid-September. While the final release of the relational database-management system (currently slated for late September) will have something new for many users, its development cycle was notable for being a period when the community hit its stride in two strategic areas: partitioning and parallelism. Partitioning and parallelism are touchstones for major relational database systems. Proprietary database vendors manage to extract a premium from a minority of users by upselling features in these areas. While PostgreSQL has had some of these "high-tier" items for many years (e.g., CREATE INDEX CONCURRENTLY, advanced replication functionality), the upcoming release expands the number considerably. I may be biased as a PostgreSQL major contributor and committer, but it seems to me that the belief that community-run database system projects are not competitive with their proprietary cousins when it comes to scaling enterprise workloads has become just about untenable. Read more