How to efficiently partition a single Windows-Ubuntu dual boot disk?
This is not a question on how to install Ubuntu or how to use manual partitioning during installation but is a question on access rights and how not to let them bite you in the lower abdomen... ;-)
This question will not help you how to make partitions on your disk, but will tell you what to do in step 4 of the installation process, depending on your personal use case, so choose one of the following:
- I'm a beginning Windows and/or beginning Ubuntu user
- I know Windows well but Ubuntu is new / I know Ubuntu well, but Windows is new.
- I'm an expert at both Ubuntu and Windows!
Note: The above questions can also be used with multiple disks, but the examples in the answers are given for one disk.
Solution 1:
I know Windows well but Ubuntu not so well
(or the other way around)
Both Windows and Ubuntu are POSIX compliant operating systems and they both allow you to define which user has access to which individual file, directory, partition or disk!
But they do it just a little bit differently (There are full-time jobs for people who have to clean up wrong ownership of data all day long!)
So take the average hard disk:
If you have more then 1 partition, you're probably running an UEFI system. Please, do not delete any of those partitions! Concentrate on the biggest partition you have and use that one in the following exercise...
Depending on your use case give each OS enough space for its own system and applications (the below numbers are the minimum and recommended system requirements, so you should multiply them by a factor that is comfortable for your use case)
- Windows 10 : 20 GB minimum, >=32GB recommended
- Windows 8 : 20 GB minimum, N/A recommended
- Windows 7 : 20 GB minimum, >=35GB recommended
- Windows Vista : 15 GB minimum, >=35GB recommended
- Windows XP : 4 GB minimum, N/A recommended
- Ubuntu Desktop : 4 GB minimum, 25GB recommended
- Ubuntu Server : 1 GB minimum, 25GB recommended
Note: Ubuntu also needs a swap partition of a size described here.
The rest of the disk (-10%) can be given to a data partition formatted to NTFS from gparted See note below so that you arrive at the following lay-out:
Then:
- Install Windows
- Create all your users under Windows
- Install Ubuntu
- Create all your users under Ubuntu giving them both the same name and the same password as under Windows.
- Boot the Ubuntu Live CD again and run
gparted
and shrink both Windows and Ubuntu partitions until they take twice to thrice the amount of the pale yellow bar. Then create the data partition and format it to "ntfs" -
mount this partition in your
fstab
(E.g./media/data
)
The following steps credit to:user68186, copied from here
-
Move your data directories to the
/Data
mount point by pressing Ctrl+Alt+T and copy-paste each line followed by Enter (replace "UserName" by your user name):md /media/data/UserName md /media/data/UserName/{bin,Desktop,Documents,Downloads,Music,Pictures,Public,Templates,Videos} mv /home/UserName/bin /media/data/UserName/bin mv /home/UserName/Desktop /media/data/UserName/Desktop mv /home/UserName/Documents /media/data/UserName/Documents mv /home/UserName/Downloads /media/data/UserName/Downloads mv /home/UserName/Music /media/data/UserName/Music mv /home/UserName/Pictures /media/data/UserName/Pictures mv /home/UserName/Public /media/data/UserName/Public mv /home/UserName/Templates /media/data/UserName/Templates mv /home/UserName/Videos /media/data/UserName/Videos
-
Make symbolic links for your user to the above directories somewhere else
ln -s /media/data/UserName/bin/ bin ln -s /media/data/UserName/Desktop/ Desktop ln -s /media/data/UserName/Documents/ Documents ln -s /media/data/UserName/Downloads/ Downloads ln -s /media/data/UserName/Music/ Music ln -s /media/data/UserName/Pictures/ Pictures ln -s /media/data/UserName/Public/ Public ln -s /media/data/UserName/Templates/ Templates ln -s /media/data/UserName/Videos/ Videos
-
Go to Windows again and move the user directories to your
D:
drive in theusers
directory.
Why?
When you boot into Windows (or Ubuntu), both Windows and Ubuntu have their own system files and applications installed in their own environment. On top of that, you don't have to worry about which file goes where: All Ubuntu files can be found under Windows in the d:\home
directory and all your Windows files can be found under the /users
directory in Ubuntu.
If you use any of the following:
- Ubuntu commands:
chown
,chmod
or Windows command:cacls
, - if you use any of the file managers to right-click on directories or files to use
set permissions
then please do not set permissions from inside Windows in the D:\home
nor from inside Ubuntu on the /Users
directory ever! Also, do not move files between /users
and /home
(or D:\home
and D:\Users
) ever!
###Only copy files!
(and then delete the original because moving will try to move the permissions from one totally different file system to another and that'll give you troubles you want to avoid)
Why is there 10% unallocated space on your drive? Well, that's a little trick when your PC is brand new: you don't need all that space, and that free space is your proverbial spare tire if you ever need to extend one of the other partitions when they run flat! ;-)
Now go back to step 5 of the How to Install Ubuntu and continue there...
Solution 2:
I'm an expert at both Windows and Ubuntu
Good! Welcome! :-) You've probably read the non-expert versions above and wondered what's in it for you...
Well, I'm not going to tell you that:
- creating 4 primary partitions on one single MBR drive is locking yourself in a corner (though some of the users above will have them on a GPT drive),
- nor what partitioning scheme to use to install your OS: that's what the FHS and the Microsoft Server Install Guidelines are for
- nor that Microsoft server isn't really a POSIX compliant server any more, but an Interix subsystem.
- to speed up boot, put your OS files on the SSD for both Ubuntu and Windows and your data files on the HDD
it is a bad idea to create swap space on an SSD (though it's getting better) for both Ubuntu and Windows.
You know all that, right?
Well, what you might not know about interoperability between NTFS and Ubuntu is that:
- File ownership and permissions can be interoperable between Windows and Ubuntu.
- Windows-Unix compatible ACLs can be defined
- That Windows Junction points can be seen as Ubuntu symbolic links.
- Creating and updating compressed files can be supported.
However, you must
- use correct mount options:
inherit
,permissions
,streams_interface=windows
,hide_hid_files
,windows_names
,compression
- creating a
/.NTFS-3G/UserMapping
file withntfs-3g.usermap
and then manually edit it (permissions
above not needed) - To be able to do an image back-up, mount the volume with
ro
andefs_raw
- Do the administration of complex rights always on the host system!
- Use the
ntfs-3g-advanced
driver (to get all bells and whistles) - Create ACLs (recompile driver, set option --enable-posix-acls in the configure command)
- Create Windows Junctions on Windows and define them in
/.NTFS-3G/
(E.g. /.NTFS-3G/D:/Users)
For all the whistles and bells: man ntfs-3g
and the advanced options article by one of the creators of ntfs-3g
.
Solution 3:
I'm a beginning user of Windows and/or Ubuntu
Both Windows and Ubuntu are advanced operating systems that allow you to define which user has access to which individual file, directory, partition or disk! But defining all these access rights can be a cumbersome task. (There are full-time jobs of people just doing this all day long!)
So take the average hard disk with Windows installed:
If you have more then 1 partition, you're probably running an UEFI system. Please, do not delete any of those partitions! Concentrate on the biggest partition you have and use that one in the following exercise...
You can see from the light yellow colour that it's only partially used. If it's more then 50% full, you should be saving money already to buy a bigger hard disk. If it's more then 80% full, stop reading this answer now and upgrade your hard disk first! ;-)
The ideal situation is to give:
- 40% of disk space to Windows (shrink the partition)
- 40% to Ubuntu (create an EXT4 partition)
- 20% to common use between both. (create a FAT32 partition: the maximum volume size is 8TB if you don't need Windows 2000 compatibility)
- Ideally, also create a swap partition of a size described here.
If you followed the rules above you will get:
Why? When you boot into Windows (or Ubuntu), each OS has their own system files and applications installed in their own environment.
Sometimes you want to have files common to both OSes (Music? Videos?) and that is where the 3rd partition comes in: That is a drive that shows up as your D:
drive under Windows and as your /home/YourUserName/data
directory under Ubuntu. You can safely store any file there and neither of the OSes can mess up the ownership, the rights to the files, ... as it's basically like a large USB stick but on your hard disk (FAT32)
Warning: The maximum file size on your /data
volume (D:
on Windows) is 4GB!
Now go back to step 4 of the Official installation instructions and continue there...