| < Day Day Up > |
|
It's best to create partitions using Disk Druid during the installation process. This can save you grief as an administrator-and especially during the Red Hat exams. However, mistakes are made. You might forget to create a critical partition during the Installation and Configuration exam. You might need to create a larger /home directory partition for your users. For this purpose, the standard is still the fdisk utility, which I'll describe shortly.
Before you use fdisk to create or revise partitions, you should check your free space and the partitions that are currently mounted. You can do this with the df and mount commands. The following example illustrates how the df command displays the total, used, and available free space on all currently mounted filesystems.
Note the numbers under the 1k-blocks column. In this case, they add up to about 3GB of allocated space. (Don't include the space associated with /dev/hdc, which refers to a CD drive.) If your hard drive is larger, you may have unallocated space that you can use for another partition.
[root@Enterprise root]# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda8 932833 502478 382162 57% / /dev/hda7 23300 2588 19509 12% /boot /dev/hda1 1052064 914784 137280 87% /dosC /dev/hda6 1052064 111648 940416 11% /home none 62828 0 62828 100% /dev/shm /dev/hdc 556054 556054 0 100% /mnt/cdrom [root@Enterprise root]#
The second command, mount, includes the filesystem type. In this case, we see the partition represented by device /dev/hda1 mounted with the VFAT file type on the /DosC directory. It provides direct access to the C: drive of the Windows operating system. I've set up the data shown from the mount command in columns for clarity; what you actually see in the RHEL 3 command line is less organized.
[root@Enterprise root]# mount /dev/hda8 on / type ext3 (rw) none on /proc type proc (rw) /dev/hda7 on /boot type ext3 (rw) /dev/hda1 on /dosC type vfat (rw) /dev/hda6 on /home type vfat (rw) none on /dev/pts type devpts (rw,mode=0620) /dev/hdb on /mnt/cdrom type iso9660 (ro) [root@Enterprise root]#
On The Job | As of this writing, RHEL 3 can reliably recognize NTFS partitions only in read-only mode. While support for write mode is available through the Linux kernel, it is noted as 'dangerous' per the kernel help files. |
One of the benefits is that you can move and copy files between the Linux and DOS partitions using standard Linux commands. You cannot, however, run many Microsoft Windows applications within Linux unless you run a DOS or Windows Emulation package such as WINE (www.winehq.org) or CrossOver Office (www.codeweavers.com).
The fdisk utility is universally available and should be one of the first tools you get acquainted with. There are many commands, even an expert mode, but you only need to know a few, as discussed here.
Though you can modify the physical disk partition layout using many programs, we will be discussing the Linux implementation of fdisk. FDISK.EXE from DOS has the same name and is also used for creating partitions, but it doesn't incorporate any Linux-compatible features. It also includes a different interface.
The following screen output lists commands that show how to start the fdisk program, how to get help, and how to quit the program. The /dev/hda drive is associated with the first IDE drive on a regular PC. Your computer may have a different hard drive; you can check the output from the df and mount commands for clues.
As you can see, once you start fdisk, it opens its own command line prompt.
# fdisk /dev/hda Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): q
In the fdisk command line prompt, start with the print the partition table command (p). This allows you to review the current entries in the partition table. Assuming you have free space, you then create a new (n) partition, either primary (p) or logical (l). If it doesn't already exist, you can also create an extended partition (e) to contain your logical partitions. Remember that there are four primary partitions, which correspond to numbers 1 through 4. One of the primary partitions can be redesignated as an extended partition. The remaining partitions are logical partitions, numbered between 5 and above. The Linux fdisk utility won't allow you to create more than 16 partitions on the drive.
When you assign space to a partition, you're assigning a block of cylinders on that hard disk. If you have free space, the fdisk default starts the new partition at the first available cylinder. The actual size of the partition depends on disk geometry; do not worry about exact size here.
In the following example, you will remove the only partition. The sample output screen first starts fdisk. Then you print (p) the current partition table, delete (d) the partition by number (1 in this case), write (w) the changes to the disk, and quit (q) from the program. Needless to say, do not perform this action on any partition where you need the data.
# fdisk /dev/hdb Command (m for help): p Disk /dev/hdb: 255 heads, 63 sectors, 525 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 1 525 4217031 6 FAT16 Command (m for help): d Partition number (1-1): 1
This is the last chance to change your mind before deleting the current partition. If you want to quit without saving changes, exit from fdisk with the q command. If you're pleased with the changes that you've made and want to make them permanent, proceed with the w command:
Command (m for help): w
You did it! Now you have an empty hard disk or hard disk area where you can create the partitions you need.
The following screen output sample shows the steps used to create (n) the first (/boot) partition, make it bootable (a), and then finally write (w) the partition information to the disk. (Note: Although you may ask for a 100MB partition, the geometry of the disk may not allow that precise size, as shown in the example.)
# fdisk /dev/hdb Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): First cylinder (1-256, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (2-256,def 256): +100M Command (m for help): a Partition number (1-4): 1 Command (m for help): p Disk /dev/hdb: 255 heads, 63 sectors, 256 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 1 12 98163 83 Linux Command (m for help):
Repeat the previous commands as appropriate to create any other partitions that you might need. I illustrate one possible group of partitions here:
Command (m for help): p Disk /dev/hdb: 255 heads, 63 sectors, 256 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 2 16044 83 Linux /dev/hdb2 3 18 64176 82 swap /dev/hdb3 19 169 1203300 83 Linux /dev/hdb4 170 250 649782 5 Extended /dev/hdb5 170 201 248682 83 Linux /dev/hdb6 202 257 449232 83 Linux Command (m for help): w
On The Job | The number of blocks that you see may vary slightly depending on the size of your hard disk, the number of heads, sectors, and cylinders on that disk, as well as the version of fdisk that you're using. |
After installing Linux on a new PC, you'll want to use fdisk to configure additional physical disks attached to the system. For example, if it's the first disk attached to the secondary IDE controller, run the fdisk /dev/hdc command.
Remember the limitations on partitions. If you need more than four partitions on the new physical disk, configure type Primary for the first three partitions, and then Extended for the rest of the disk as partition 4. You can then create logical partitions 5-16 within the extended partition.
You need to create a partition before you can reassign it as a swap partition. At the fdisk prompt, run the L command. You'll see a large number of file types, listed as hex codes. When you create a partition, fdisk creates a Linux Native type partition by default. As you can see from the output of the L command, the associated hex code is (83).
It's easy to reassign a partition as a swap partition. Run the p command. Remember the number of the partition you want to change. Make sure that partition doesn't have data that you want to save.
Now run the t command. Type in the number associated with the partition that you want to change. Type in the hex code for the type you want, in this case, 82 for a Linux swap partition. For example, I could run the following sequence of commands to set up a new swap partition on the second IDE hard drive. The commands that I type are in bold. The details of what you see depend on the partitions that you may have created. It'll be a 1GB swap space on the first primary partition (/dev/hdb1).
# fdisk /dev/hdb Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10402, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-10402, default 10402): +1000M Command (m for help): p Disk /dev/hdb: 5368 MB, 5368709120 bytes 16 heads, 63 sectors/track, 10402 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 1939 977224+ 83 Linux Command (m for help): t Selected partition 1 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. #
The fdisk utility doesn't actually write the changes to your hard disk until you run the write (w) command. You have a chance to cancel your changes with the quit (q) command.
| < Day Day Up > |
|