19

The Ubuntu installer does not allow me to install on NTFS partitions, but certain circumstances requires me to do so. Is it possible?

14
  • Wubi? ... and If the installer allows you to install on NTFS partitions , the filesystem should be changed to ext4 ? am I right?
    – Binarylife
    Aug 2, 2011 at 7:24
  • I won't be running Windows.
    – Oxwivi
    Aug 2, 2011 at 7:33
  • 1
    @enzotib, that'd be fine, but I need it accessible to Windows systems. The USB is dual purpose to serve as storage medium and a portable operating system as well.
    – Oxwivi
    Aug 2, 2011 at 13:29
  • 1
    So make a first primary partition for windows storage, and another partition for installing ubuntu (plus swap, if needed)
    – enzotib
    Aug 2, 2011 at 13:33
  • 1
    @13east, 4 GB file size limit is not a limitation I can entertain.
    – Oxwivi
    Aug 2, 2011 at 15:39

4 Answers 4

13

No. NTFS doesn't support Linux file permissions so you can't install a Linux system on it.

18
  • 4
    No ugly hacks either?
    – Oxwivi
    Aug 2, 2011 at 7:35
  • Maybe somewhere there exists some hack that implements a Linux file system on top of NTFS like UMSDOS did on top of FAT, but I've never seen that. Aug 2, 2011 at 11:48
  • 1
    It does not work in that manner. You won't be able to install Ubuntu onto an NTFS partition - the permissions systems just do not work on that type of partition.
    – Thomas Ward
    Aug 2, 2011 at 15:17
  • 1
    @Oxwivi POSIX Overlay Filesystem seems to do this. Aug 2, 2011 at 17:44
  • 1
    I am not really satisfied by this answer. Isn't there a way to ignore system permissions? There is Cygwin, VirtualBox and Samba surely there is somewhat to get it to partially working. Although they certainly don't imply such would work.
    – William
    Oct 22, 2015 at 16:18
13

It is possible to install Ubuntu on a NTFS partition.

Image Creation

You need to create an image file on your NTFS partition. Try boot up your Ubuntu Live CD, start a terminal, change directory into your NTFS partition, and create a image file:

cd /media/ubuntu/<your_ntfs_partition>/
mkdir linux
cd linux/
dd if=/dev/zero of=./linux.img bs=1M count=32768
mkfs.ext4 ./linux.img

This will create an image file of size 32GB with EXT4 at linux/linux.img

Loopback Filesystem Setup

Now, create a virtual block device at /dev/sdX where X is a non-occupied block device character (i.e. I only have /dev/sda, so I used /dev/sdb);

Also choose a minor number (in this case 200) that is not in use with ls -al /dev:

sudo mknod /dev/sdb b 7 200
sudo losetup /dev/sdb ./linux.img

Installing Ubuntu

You can now launch the Ubuntu installer and install Ubuntu on /dev/sdX, make sure you have install the bootloader to your real disk (or EFI partition) if you don't have Windows installed on that disk. After the installation, you need to get the kernel and initrd file name by mounting the image:

sudo mkdir /media/ubuntu/rfs
sudo mount -o loop /dev/sdb /media/ubuntu/rfs
ls -al /media/ubuntu/rfs/boot

Mark down the kernel and initrd filename, in my case that's vmlinuz-4.4.0-31-generic, and initrd.img-4.4.0-31-generic.

Bootloader

I have a Windows on my NTFS partition, so I have chosen Grub2Win as my bootloader. However, if you don't have Windows installed and insisted to use a NTFS partition (which is no point to do so though), GRUB should have installed on your disk in the previous step. No matter you use Grub2Win or the original GRUB, You need to edit your GRUB config and use the following:

echo Booting linux...

loopback loop0 (hd0,1)/linux/linux.img
set root=(loop0)
linux /boot/vmlinuz-4.4.0-31-generic root=/dev/sda1 loop=/linux/linux.img rw verbose nosplash
initrd /boot/initrd.img-4.4.0-31-generic

You need to edit (hd0,1) and /dev/sda1 to the NTFS partition that your linux image resides in. You may use the GRUB command line to get it. Also modify the kernel and initrd filenames according to your installation. Make sure your GRUB have NTFS and loopback support.

Now, when you boot the disk, you can boot into Ubuntu with GRUB. I have written my steps and procedure to here, but I am using Grub2Win as I mentioned earlier.

10
  • 2
    please don't write an answer just to refer to another question. That can be done using comments when you have enough reputation, or by flagging as a duplicate if appropriate
    – Zanna
    May 13, 2017 at 9:26
  • 1
    Sorry, I am gonna write up a full answer. This question does not duplicate with the another question, the answer of this question does, however, requires actions involved in the answer of that question. May 14, 2017 at 12:44
  • Ok, please edit your answer :)
    – Zanna
    May 14, 2017 at 13:13
  • Done. Could the downvoter kindly retract your downvote? Thanks. May 14, 2017 at 13:50
  • 1
    @whoKnows Sorry for late reply. In this case, the /etc/fstab looks like this: UUID=8616f9db-70ac-496e-a6b2-808a36332dc4 / ext4 errors=remount -ro 0 1. It looks like it is using a UUID instead of a block device. Jun 6, 2018 at 19:12
5

I'm not sure what your "certain circumstances" are, but you are better off resizing the partition and letting Ubuntu have its own space. You can always resize/move the Ubuntu partition later.

You cannot install Linux on an NTFS system for security, technical, and other reasons (for example, NTFS is supported by a user-space driver).

4
  • 1
    Also, symbolic links are not supported by NTFS and are required.
    – NRoach44
    Nov 1, 2011 at 7:58
  • @NRoach44: you can add your own answer if you like :)...
    – RolandiXor
    Nov 1, 2011 at 15:06
  • @Mehrdad that's clearly NOT recommended, and potentially dangerous. I'm deleting your comment to protect new users. Also, when replying with such comments, make sure to check the date of the answer.
    – RolandiXor
    Mar 16, 2019 at 4:16
  • @RolandiXor: I did read it, but I'm saying the reasoning is incorrect, and that has nothing to do with the date. Clearly the fact that NTFS is supported by a userspace driver doesn't prevent it from being used. The fact is your reasons are bogus and don't prevent this from happening. It's a an abuse of mod privileges in my book to delete my comment when I'm pointing out your answer is incorrect, but in any case, you should update your answer first so that it doesn't lie to people...
    – user541686
    Mar 16, 2019 at 4:17
1

Supposedly, wubi is an Ubuntu installer which allows to "install and uninstall Ubuntu in the same way as any other Windows application" - I never tried this but I suppose the whole partition is contained in a file which can be on an NTFS drive.

http://www.ubuntu.com/download/ubuntu/windows-installer

I'm pretty sure it's not possible to install Ubuntu on an NTFS partition in the traditional sense of the word - i.e. as a stand-alone OS which directly accesses the drive etc. For one thing, filesystem permissions models are quite different etc.

However, you can access NTFS partitions from an Ubuntu which is installed on a, for example, ext4-partition.

6
  • But there's no Windows for me to install Wubi in...
    – Oxwivi
    Aug 2, 2011 at 7:33
  • 2
    If you don't have windows, why do you need NTFS? Just forget it. It's like you want to install Windows on ext2/3/4, even if you don't have any Linux to support ext* filesystems :) But anyway, in theory, it's not totally impossible to install on NTFS: you can create a big enough file on the NTFS, which is used as a loopback mount (so that file will be the ext3/4 "inside"). However, I am not sure if there is simple method to do this ... Even in that case, from Linux's view point, it's installed on ext2/3, just it's only a file on NTFS then ...
    – LGB
    Aug 2, 2011 at 13:01
  • Wubi only works because it creates a disk blob partitioned as a drive with EXT3 installed inside of that disk blob. Ergo blob exists on NTFS partition. But it's more of a disk inside of a disk then Ubuntu on NTFS Aug 2, 2011 at 14:56
  • @Marco, can we bind folders from a live USB's disk blob to some folder in the NTFS partition?
    – Oxwivi
    Aug 2, 2011 at 15:46
  • @Oxwivi Over my head at that point. Aug 2, 2011 at 15:47

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