From Windows-Wimp to Command-Line Warrior. Part 5: Making some disk space

25 August 2005

If you are installing on a spare computer that you don't need to keep Windows on then you can just install Gentoo over the top, destroying Windows in the process.

Otherwise you need to make some space for Gentoo to live alongside Windows. A small program called Grub will give you a menu when you boot to choose between them.

How much space? The more the better, 10-40Gb would be very comfortable. 1.5 Gb would be an absolute minimum, 500Mb or below is theoretically possible but requires a lot of messing about so is not recommended. There are three ways to go about it, in increasing orders of pain!

  1. Add a new hard-drive

If you have a desktop, a nice easy solution is to slap another hard-drive into the machine; you can pick one up for say £30 or less. Then one can be for Windows and one for Gentoo. It is unlikely that you can add another internal drive to a laptop.

  1. Re-using spare partitions

Sometimes a computer that comes with Windows will have the hard-drive split into more than one partition. If you look in 'My Computer' and find that you have, say, C and E (with D being the CD Drive), then you could use some of the space represented by E. I was faced with this situation recently while helping someone. This is my method a- make sure that you move everything from drive E to C so that E is empty. b- delete E using fdisk (or cfdisk). c- repartition the disk. This is the plan that I used (for an 80Gb Drive):

hda1 - 20Gb - NTFS - Windows XP (C:) hda2 - 20Gb - FAT32 (vfat) - Shared drive between Windows and GNU/Linux (E: in Windows and /home/user/shared in GNU/Linux) hda3 - 1 Gb - Swap - GNU/Linux Swap drive (hda4 - 0 - - Logical Extension Table) hda5 - 30Mb - ext2 - GNU/Linux Boot hda6 - 38Gb - ext3 - GNU/Linux Root

Update: Note that the shared space is not really required anymore as there are now drivers available that will let you read your Windows partition from Linux and your Linux partition from Windows.

  1. Repartitioning space

You may be faced with one hard-drive that is just one partition called C:. Your only option here may be to resize it. Before doing anything to your hard-drive back up all your personal data and make sure you have all your Windows and Office disks close to hand just in case since the Windows file- system NTFS is known to be a bit buggy and things could go wrong requiring Windows to repair itself using the disks.

Strangely, Windows XP comes with no disk resizing utility. There are however many ways to go about this, keep Googling and reading until you are comfortable.

Another option is to use the parted command-line utility on the Gentoo install CD.

On the Gentoo LiveCD there is a program called parted that will resize your NTFS partition for you. However, if you are completely new to Linux you might want to download and burn the gparted LiveCD, where you can resize your partitions graphically. This would be my recommendation but requires another blank CD

Another way is to download a shareware program called "partition magic" that can resize it for you, but I have never really tried it.

For FAT32 partitions, you can download a special boot floppy called FIPS that will do the job for you:

> The idea is to move all the data on the partition to the beginning, before changing the partition information, so that nothing will be lost. It is important that you do as little as possible between the data movement and repartitioning to minimize the chance of a file being written near the end of the partition as this will decrease the amount of space you can take from the partition.

The first thing needed is a copy of fips which is available in the tools/ directory on your nearest Debian mirror. Unzip the archive and copy the files RESTORRB.EXE, FIPS.EXE and ERRORS.TXT to a bootable floppy. A bootable floppy can be created using the command sys a: under DOS. fips comes with very good documentation which you may want to read. You will definitely need to read the documentation if you use a disk compression driver or a disk manager. Create the disk and read the documentation before you defragment the disk.

The next thing needed is to move all the data to the beginning of the partition. defrag, which comes standard with DOS 6.0 and later, can easily do the job. See the fips documentation for a list of other software that may do the trick. Note that if you have Windows 9x, you must run defrag from there, since DOS doesn't understand VFAT, which is used to support for long filenames, used in Windows 95 and higher.

After running the defragmenter (which can take a while on a large disk), reboot with the fips disk you created in the floppy drive. Simply type a:fips and follow the directions.

Note that there are many other other partition managers out there, in case fips doesn't do the trick for you. (Taken from 3.5. Pre-Partitioning for Multi-Boot Systems, Debian GNU/Linux Installation Guide, )

Sorting out Windows is by far the most complicated part of this series, if you can do this then nothing else here will be beyond you.

What do you have to say?

Show Editing Help

About

Hello, my name is Zeth, I'll be your host here.

Command Line Warriors is about taking control of your own technology, it looks at our experiences of computing; especially using GNU/Linux, the Python programming language, the command-line and issues such as techno-ethics, best practices and whatever is cool now. If you take control of your technology then you are a Warrior too!

This site is your site too which means that you can contribute and get involved. You can leave comments using the facility provided. For me, the comments and discussions are by far the best part of the site. So please do have your say!

Latest Discussions

Zeth

November 29, 2009
Hi Jordan, yes that URL is gone now. I have a new contact form on this site.
Python CGI contact forms

Jordan

November 29, 2009
Zeth attention! Your form, http://zeth.me.uk/contact/, is not working The explorer says connecting ..but nothing happens Sorry for my poor English: I am Spanish Regards
Python CGI contact forms

Jordan

November 26, 2009
Sorry: tell me , not tellme (I'm spaniard) And http://zeth.me.uk/contact/ don't work
You got the touch, you got the power

David Jones

November 25, 2009
Your mad skillz are too l33t! for me. I specifically switched to Google Reader so that I could show people what blogs I read. But I couldn't work out how ...
How to find the fashionable blogs quickly

Brian R. Hickey

November 20, 2009
Symantec picked it up too.
How to bring down Internet Explorer with six words

Zeth

November 17, 2009
Thanks djm, I am the moose here. Christian, assuming one actually does Internationalise the countries, it should still work I guess, as the gettext stuff will happen before the list ...
Countries in Django

Phillip Temple

November 17, 2009
Good start, but: a) wouldn't I want None back rather than 'ZZ'? b) why not add a 'shortcut' boolean, then prepend flagged fields (plus usual '-----' separator) to the actual ...
Countries in Django

djm

November 17, 2009
Am I being a moose or did you mean: from whatever.countries import CountryField instead of from whatever.countries import CharField ? Good post though, cheers.
Countries in Django

Christian Joergensen

November 17, 2009
Wouldn't the ordering get messed up after i18n?
Countries in Django

Steve - Electronic Cigarettes Fan

November 17, 2009
Very well done. Is your blog just you writing? Nicely done, Steven.
Blogger vs Wordpress

vetetix

November 15, 2009
Sorry to bother you nearly two years after you wrote this blog article, but I can't manage to find how to modify an existing field. I am trying to change ...
Three Useful Python Bindings - ClamAV, Apt and Evolution

Manju

November 4, 2009
I am transferring some files using psftp to other device's FAT partition. But the filestamp of the file being transferred is modified to that of FAT device, after the transfer. ...
PuTTY Series: Using PSFTP

iki

November 2, 2009
or simpler: socket.gethostbyname_ex(socket.gethostname())[2]
How to find out your IP address in Python

iki

November 2, 2009
local_ip = set([ i[4][0] for i in socket.getaddrinfo(socket.gethostname(), None) if i[0] == 2 ])
How to find out your IP address in Python

Fred

November 2, 2009
testing rst ------------- - point 1
An Introduction to ReStructuredText

Ano

October 27, 2009
"You simply found the license of the StumbleUpon Toolbar for Internet Explorer." That's possible. I've got some more interesting information to add. Firstly, go to this page: https://addons.mozilla.org/en-US/firefox/addon/138 - this ...
Are your Firefox extensions proprietary software?

Ken

October 21, 2009
Stumbled in here at lunch. This is the best find of the week. Thanks.
Three classic command line tips

Jim

October 19, 2009
Thanks for the rtsp:// post - that's something that has been bugging me for a while!
Three classic command line tips

Zeth

October 18, 2009
Thanks for the comments guys. Great to see the all the gang are still here!
Three classic command line tips

Bubba

October 18, 2009
Is there any way psftp can return the true transfer rates oberved during the actual transfer?
PuTTY Series: Using PSFTP