I tried installing a "pen drive" version of Ubuntu from PenDriveLinux.com, but since it was a modified version of Live Ubuntu (i.e. that usually runs from a CD), it had some kind of custom "persistence" options that made some parts of the file system readonly. What I am looking to do is boot from my USB and have the distro work exactly like a "regular" distro - i.e. be able to write anywhere I would normally be able to and have it persisted, install packages, etc.

Also I would like to be able to access the filesystem from Windows (i.e. not just mounting the Windows disk while running Linux).

I tried just installing a standard Ubuntu distro to my USB as if it were just a standard drive, but I got what seemed to be some low-level errors (forget what they were). Should this be expected, or should I just try installing some other standard distros.


Basically these are two questions.

  1. You can install any distribution onto a USB-drive or stick. 8 GB should be enough.
  2. If you want to be able to access files from Windows, then Windows has to be able to mount the linux-partitions. A "solution" might be to install Linux on VFAT/NTFS/...

But: I see no reason to do so. Use a separate partition formatted with VFAT und use that as data-exchange-partition.

  • Excellent, thanks. I just wanted to confirm that I should be able to install any distro to the USB before I troubleshoot what I am doing wrong and/or download other distributions. I like the partition idea; I will actually rarely need to copy a file from Windows to the Linux fs, I just need to sill have the USB available for transferring files from one computer to another. – David Deutsch Mar 3 '12 at 21:58
  • +1 for the separate vfat-formatted partition (or even ntfs) idea. (Don't try to install to that tho.) – rsaw Mar 3 '12 at 22:08

Also be aware of Windows' limitation on removable Flash devices, where it can't see but the first partition. Yes whatever the filesystem on it.

The solutions I found to make the Data partition usable under that silly OS are:

a) Put the data partition first on the device and then the system, bootable partition,

b) Or put it where you like it best, and then swap the partitions number. A simple way to achieve this is described on this post: Point "4a. Use RMPrepUSB" alone does the trick.

This requires to launch RMPrepUSB (GPL) from Windows with the USB stick plugged. BTW I'm looking for a way to swap partitions on a usb device from Linux. Please share if you know!

  • This is not true. It can see them - it just generally does not reveal them. This behavior can be affected by manipulating the way it handles the removable flag. And, as always, there is DISKPART. – mikeserv Jan 4 '15 at 22:06
  • Can you please expand on using Windows DISKPART to swap partitions order for Windows? Or using a linux utility? As for removable devices «In Windows, fixed disks can have multiple partitions and removable disks can have only one partition. You can create two or more partitions on the removable disk in Linux, but Windows will recognize only the first partition on that disk.» [social.technet.microsoft.com/Forums/windows/fr-FR/… – tuk0z Jan 5 '15 at 8:46

Extending the accepted answer, you can install Linux on an NTFS partition, although it requires major re-work of the distro.

There are two major problems to solve:

  1. The read-write NTFS support in Linux is going currently with the user-space NTFS-3G tool, thus you can't mount it easily as a root partition. You have to mount it from an initial ramdisk, and then use the pivot_root tool to switch the root partition into it. It requires a rework of the quasi-standard linux initial ramdisk.

  2. Although NTFS-3G supports the most important unix filesystem features (hard link and soft links), many important features can't be made working. These require alternate solutions:

    • On NTFS, there are no unix sockets. The solution is that most unix sockets are in /dev, /var/run or in /tmp on current Linuxes, so you can put these on a tmpfs, or symlink them into an already created tmpfs.
    • Also there are no device files. Fortunately they are today only in /dev, which is a tmpfs since udev became common. Although the initial boot scripts (before the udev mount) will still require workarounds.
    • And, there are no fifos. These can be handled as the unix sockets.

You will also experience a major performance degradation, on these reasons: 1. NTFS is far lesser optimal as ext4 2. ntfs-3g is not tuned for performance, it is tuned for windows compatibility 3. ntfs-3g is a userspace tool, while windows can handle ntfs from kernel code.

There is also a problem, that some Linux tools create fifos/sockets in the user home directories (for example: gpg), these will require not major, but unavoidable ad-hoc patches or workaround scripts.

On my best knowledge, nobody did it until now, but yes, it is possible.

Another problem is that the NTFS formatter/checker tools on Linux aren't very well developed, but they could be emulated with wine.

Practically, an ubuntu fork could be created relative easily (roughly in 1 man-month), which uses NTFS as its root partition. Nobody did it until now, but it could be done.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.