12

I'm a new Linux user and a Windows convert. I tried Ubuntu (Dapper Drake) a few years ago and liked it quite a bit, and I'm in the process of installing Xubuntu 13.10 along side Windows7 on my brand new SSD! At this point, Windows is still being installed because I need it to be, but Linux is getting installed because I want to use it! I've done quite a bit of research and I've toyed around with Linux before, but I'm still a newbie and I have a few questions concerning partitions and program installations..

My new SSD isn't huge (120GB Samsung 840 EVO), and I'll be using my old 800GB HDD as a secondary drive. The thing is, I plan on using Linux as much as possible; only switching over to Windows7 when I absolutely need to. Because of this, I'll be doing a 50:50 split of my SSD for each OS (60GB for Linux, 60GB for Windows). I'm also planning on splitting my old, 800GB HDD into 3 partitions: some space for extra linux programs, some space for extra windows programs, and then a shared NTFS partition for all of my data (music, videos, documents, etc.).

So to sum up my space situation:

  • ~60gb SSD + 200gb HDD for Linux..
  • ~60gb SSD + 200gb HDD for Windows..
  • ~400gb shared NTFS..

This leads me to my questions.. While I have a fairly good idea of how my Windows setup will work (60gb C: drive, 200gb D: drive, etc.), the Unix/Linux directory structure is still very new to me and is making this process a little bit confusing. I know that it's possible (and common) to partition your "/" directory and "home" directory separately, and - as I understand it - the "/" partition is meant to contain system specific programs and data, while the "home" partition contains the programs and data of the various users.

However, I've also heard that most (if not all) of the programs that you install from repositories using APT are installed into the "/" directory. As someone who works with music/art programs and plays games (which can take up a LOT of space), this leads me to believe that I'll need a large "/" partition!

I've also read (from here: http://www.control-escape.com/linux/lx-partition.html) that the "home" directory is "the place where all the user-specific files, your data in other words, are stored. It is roughly equivalent to the “My Documents” folder on a MS Windows desktop". But, as I mentioned above, I intend to keep all of my non-OS-specific data (music, documents, videos, etc.) on my ~400gb shared partition, anyway. This really leads me to believe that I don't need a big home partition at all and that I should focus on partitioning as much space as possible for "/". And still, I've heard other people claim that you only need around 10gb of space for your root partition!?

Edit: Also, I just found out that programs like Steam and Wine take up space inside the "home" directory.

So, what should I do? I basically have 60gb SSD and 200gb HDD space for holding nothing but Linux programs. All of my data will be going onto my 400gb shared NTFS partition, so is it even worth making separate partitions for "/" and "home"? If I install both root and home on my 60gb SSD, how can I also use the extra 200gb of HDD space for more Linux programs? Can I expand root across multiple drives somehow, or maybe have a symlink or something that connects the two drives together?

As I said before, I'm still a major Linux newbie, so there may be something that I've completely misunderstood or overlooked. As someone who does a lot of art/music creation and gaming on my PC, I tend to use up a lot of program space quite quickly, especially since games and music libraries just keep getting bigger and bigger every year! Thanks for the help, I'm looking forward to learning more about Linux! :]

1
  • 1
    I have a Lenovo Laptop with two Hard drives in it 120 for the OS and a 1 TB for my home partition (home drive ;) ). I use a lot of software and play games as well and I have not used up very much. I've used up 33 GiB of my SSD out of the 120 GiB so Ubuntu does not use up much space for system even with a lot of games installed. now if you are super worried about needing a huge amount of data you could split part of your 800 GiB drive off say 100 GiB and use that for /usr. On Ubuntu and other Unix like systems /usr stores most of your software so if need be add a partition for /usr
    – zeitue
    Nov 19, 2013 at 5:34

2 Answers 2

12

I would argue for a single / partition in the SSD (60GB, as you have envisioned) to keep everything Ubuntu, including the /home folder.

A separate /home partition is useful:

(1) when one plans to try out different distributions of Linux (also known as "distros")

or

(2) when one may want to re-install Ubuntu without destroying the personal files and settings in /home.

The second reason is a bit less important now, as newer versions of Ubuntu installation process will detect existing Ubuntu and offer to preserve the /home folder when installing over.

On the other hand, if you keep /home as a folder of / you won't have to worry about how much to allocate to / and how much to allocate to /home. If your program files (games) take some more space, all you have to do is move your personal data to the HDD.

By now you must be thinking why not put /home in the HDD?

The only reason I prefer /home to be in the SDD is because /home stores not only your personal data, but it also stores your personal settings for all programs. This includes changes you make to the desktop or any other program settings, your browser bookmarks, etc. When you load a program from SSD but the personal settings are in HDD, it slows loading that program a tiny bit. Keeping / and /home both in the SSD will get you the fastest load time.

Keep large data such as music, video, saved games, etc. in the HDD

The folders that contain large amount of data, such as Video, can be in the NTFS partition with symbolic links to /home. This is explained in some detail at: Windows Ubuntu dual boot - Share files between OS

Other large sub-folders of /home can be partitions in the HDD. For example, if you install a lot of Windows programs and games in WINE, the hidden folder .wine will grow large. You can create an ext4 partition in the HDD and mount it at /home/[your user name]/.wine (Unlike Windows, a partition in Linux can be mounted as a sub-folder.) Steam games take up a lot of space. Your steam games are in /home/[your user name]/.local/share/Steam. See where are Steam games installed? You can create a separate Steam (ext4) partition in the HDD if you want. These will require a one-time edit of the file /etc/fstab. See Mount a partition on login? for more on how to mount a partition at login.

The reason I recommend .wine to be an ext4 partition rather than a folder in the NTFS partition is because NTFS cannot preserve ownership and file permissions used by Ubuntu that is needed by the settings and other files stored in the .wine folder by WINE.

Between system linked folders in the NTFS partition and ext4 partitions mounted as sub-folders of /home you can keep all the large files in the HDD while keeping the system fast, taking advantage of the SSD.

If you still run out of space in the / partition in SSD due to large games and other programs, you can create an ext4 partition and move /usr there. However, this will require some planning, careful thoughts and execution. Ask a separate question if and when you need to go on that route.

As far as installing programs in / versus the /home see this excellent explanation of the process and its limitations: Software installed on root partition or on home partition In short, programs installed via the Ubuntu Software Center, or the command apt-get will be installed in /. Only "static-binary" compiled programs may be installed (rather copied) in sub-folders of /home and expected to work.

More references:

Partitions for Ubuntu and Windows 7 dual boot on SSD + HDD setup

Setup for dual disk (SSD+HDD) with /home partition

Do I need Intel Smart Response when installing Ubuntu?

Move or Install Apps on HDD not SSD

1
  • 1
    Thanks so much for the detailed and well thought-out answer! I have a lot to think about now! It seems like I'm not quite used to the idea that I can simply move a folder and symlink it once my disk space begins to fill up. Linux keeps breaking down the mental barriers that I've created from years of using Windows! :] Nov 20, 2013 at 0:50
4

Partitioning and deciding where to put things is more an art than a science... so I can give you some advice that is more personal than technical.

1) keep / and /home separated. This will allow you to reinstall another kind of Linux (or Ubuntu) without touching your data and configuration. I have even been able to have two different Linux (Ubuntu and Mandriva, ages ago) running with the same /home directory and the same desktop configuration... it's really useful for experimenting.

2) Now, 60GB for "/" is quite a big partition for Linux. In my laptop I have installed all possible photo manipulation systems, various video encoders, various games, and it is like this:

(0)samsung-romano:~% df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        88G  9.5G   74G  12% /

But yes --- in your case I would put / on the SSD (maybe with a 2*RAM swap, although this is much debated), and /home on the HD.

Another option (will require more work but is more flexible) could be install a 20G root, 2G swap, and the rest /home on the SSD, and the 200G HD under for example /data. After install, you can change ownership of /data to you main user, and move there (and symlink back) the directories that grows too much. (A kind of poor-man LVM). This will have the advantage that the base system will be really snappy, being installed completely on the SSD.

A final option is what I call the "fiddler" option. You can have a number of partition (suppose three - YMMV) of about 30G --- call them p1, p2, p3; and the rest in a very big partition, mounted under /data and chowned to your user. You can have an additional swap partition if you want.

Now you can install your Ubuntu in p1, installing ALL under / in this one. Then you can symlink your personal files (documents, pictures, etc) to folders in /data.

This will permit you to install for example Ubuntu LTS on p1, the latest beta on p2, another distro on p3 --- each one with its home and configuration files, but you can share your data between all of them...

The ideal solution would be using a dynamic partitioning thing like LVM, but it's quite complex... This will be very useful when you'll decide to wipe Windows and use just Ubuntu ;-).

Additional info: where do "programs" go?

  • root partition: here (in /, /usr, /usr/share/ etc.) all the software from the distribution (official repositories and PPA ones) will go. Notice that the old division between / and /usr is now practically unused in modern Unix installation(1).

  • home partition: here you will find all your data, or software installed as a normal user (not system-wide). This include, for example, "bottles" of wine (so all the software installed under wine will be in /home, virtual machines from VirtualBox, games from CrossOver, etc. In my experience is the part of the system that really need space.

  • /usr/local and/or /opt: this is the place where programs that you want to compile yourself normally place themselves. You may need this because the program is too new or too old to be in the repository, for developing, or for just playing. I had there my old copy of CivCTP... I usually move these directories under /home to make it impervious to system (re)install.

  • big games: I have no idea. My biggest game ever was CivCTP and it stayed in less than half a GB (it installed under my home or in /usr/local).

(1) Historically(2), when disk space was expensive, we had a / partition with the minimum to boot the system (/, /bin, /sbin, /etc, /lib, /var, /tmp) in a standalone way. In this partition went the minimum software and all the directories where the system could need to write. Under /usr existed a similar scheme with all the software; /usr was normally shared and mounted read-only by a cluster of machines, in order to save disk space.

(2) I am speaking early 90s here. 100MB disk was a big server.

5
  • 2
    I agree with this.. I use only linux, and with the programs I need it has never crossed 14G. My primary work install is about 10G. The only thing that might take up more space might be big games with a lot of art. Do you know what sort of games you like and a ball park of how many you will install? (<10, low 10s, high 10s..) then see the install sizes of a few to see howbmuch extra space they will require.
    – staticd
    Nov 19, 2013 at 5:41
  • @static Of course, the thing is, many programs require <1gb space, and those aren't really an issue at all. These days, however, many games can take up >10gb each. Of course, one doesn't need them all installed at the same time, but I'd like to make the best use of my 60+200gb linux space as possible. Nov 19, 2013 at 8:06
  • @Rmano I see that you copied "usr/local" into your home partition and symlinked it to the original location.. I think that part of my confusion is based on a lack of understanding of where my programs will generally be installed. There's "/bin", "/sbin", "usr/bin", "usr/sbin", and then it seems that some programs like Steam, as well as programs running under Wine, are stored inside the "/home" directory.. Do you think I should split my 60gb SSD into root, home and swap? (And then perhaps mount "/usr" to my slower, 200gb HDD partition..?) Or should I just use SSD for root + swap, and HDD home? Nov 19, 2013 at 8:14
  • 1
    @MrKatSwordfish, I added some information to the post.
    – Rmano
    Nov 19, 2013 at 15:24
  • Thanks again for the great and well thought-out answer. I have some things to think about. I think I'm not yet used to the flexibility that is afforded to me through moving folders and replacing them with symlinks! :] Nov 20, 2013 at 0:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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