This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Handbook:Alpha/Blocks/Disks
Slices
Although it is theoretically possible to use a full disk to house a Linux system, this is almost never done in practice. Instead, full disk block devices are split up in smaller, more manageable block devices. On Alpha systems, these are called slices.
In further sections, the installation instructions will use the example partitioning for the ARC/AlphaBIOS setup. Please adjust to personal preference!
Designing a partition scheme
How many partitions and how big?
The number of partitions is highly dependent on the environment. For instance, if there are lots of users, then it is advised to have /home/ separate as it increases security and makes backups easier. If Gentoo is being installed to perform as a mail server, then /var/ should be separate as all mails are stored inside /var/. A good choice of filesystem will then maximize the performance. Game servers will have a separate /opt/ as most gaming servers are installed there. The reason is similar for the /home/ directory: security and backups. In most situations, /usr/ is to be kept big: not only will it contain the majority of applications, it typically also hosts the Gentoo ebuild repository (by default located at /usr/portage) which already takes around 650 MiB. This disk space estimate excludes the packages/ and distfiles/ directories that are generally stored within this ebuild repository.
It very much depends on what the administrator wants to achieve. Separate partitions or volumes have the following advantages:
- Choose the best performing filesystem for each partition or volume.
- The entire system cannot run out of free space if one defunct tool is continuously writing files to a partition or volume.
- If necessary, file system checks are reduced in time, as multiple checks can be done in parallel (although this advantage is more with multiple disks than it is with multiple partitions).
- Security can be enhanced by mounting some partitions or volumes read-only,
nosuid
(setuid bits are ignored),noexec
(executable bits are ignored) etc.
However, multiple partitions have disadvantages as well. If not configured properly, the system might have lots of free space on one partition and none on another. Another nuisance is that separate partitions - especially for important mount points like /usr/ or /var/ - often require the administrator to boot with an initramfs to mount the partition before other boot scripts start. This isn't always the case though, so results may vary.
There is also a 15-partition limit for SCSI and SATA unless the disk uses GPT labels.
What about swap space?
There is no perfect value for the swap partition. The purpose of swap space is to provide disk storage to the kernel when internal memory (RAM) is under pressure. A swap space allows for the kernel to move memory pages that are not likely to be accessed soon to disk (swap or page-out), freeing memory. Of course, if that memory is suddenly needed, these pages need to be put back in memory (page-in) which will take a while (as disks are very slow compared to internal memory).
When the system is not going to run memory intensive applications or the system has lots of memory available, then it probably does not need much swap space. However, swap space is also used to store the entire memory in case of hibernation. If the system is going to need hibernation, then a bigger swap space is necessary, often at least the amount of memory installed in the system.
Using fdisk to partition a disk (SRM only)
The following parts explain how to create the example slice layout for the SRM:
Slice | Description |
---|---|
/dev/sda1 | Swap slice |
/dev/sda2 | Root slice |
/dev/sda3 | Full disk (required) |
Change the slice layout according to personal preference.
Identifying available disks
To figure out what disks are running in the system, use the following commands:
For IDE disks:
root #
dmesg | grep 'drive$'
For SCSI disks:
root #
dmesg | grep 'scsi'
The output will show what disks were detected and their respective /dev/ entry. In the following parts we assume that the disk is a SCSI disk on /dev/sda.
Now fire up fdisk:
root #
fdisk /dev/sda
Deleting all slices
If the hard drive is completely blank, then first create a BSD disklabel.
Command (m for help):
b
/dev/sda contains no disklabel. Do you want to create a disklabel? (y/n) y A bunch of drive-specific info will show here 3 partitions: # start end size fstype [fsize bsize cpg] c: 1 5290* 5289* unused 0 0
We start with deleting all slices except the 'c'-slice (a requirement for using BSD disklabels). The following shows how to delete a slice (in the example we use 'a'). Repeat the process to delete all other slices (again, except the 'c'-slice).
Use p to view all existing slices. d is used to delete a slice.
BSD disklabel command (m for help):
p
8 partitions: # start end size fstype [fsize bsize cpg] a: 1 235* 234* 4.2BSD 1024 8192 16 b: 235* 469* 234* swap c: 1 5290* 5289* unused 0 0 d: 469* 2076* 1607* unused 0 0 e: 2076* 3683* 1607* unused 0 0 f: 3683* 5290* 1607* unused 0 0 g: 469* 1749* 1280 4.2BSD 1024 8192 16 h: 1749* 5290* 3541* unused 0 0
BSD disklabel command (m for help):
d
Partition (a-h): a
After repeating this process for all slices, a listing should show something similar to this:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] c: 1 5290* 5289* unused 0 0
Creating the swap slice
On Alpha based systems there is no need for a separate boot slice. However, the first cylinder cannot be used as the aboot image will be placed there.
We will create a swap slice starting at the third cylinder, with a total size of 1 GB. Use n to create a new slice. After creating the slice, we will change its type to 1 (one), meaning swap.
BSD disklabel command (m for help):
n
Partition (a-p): a First cylinder (1-5290, default 1): 3 Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):
t
Partition (a-c): a Hex code (type L to list codes): 1
After these steps a layout similar to the following should be shown:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] a: 3 1003 1001 swap c: 1 5290* 5289* unused 0 0
Creating the root slice
We will now create the root slice, starting from the first cylinder after the swap slice. Use the p command to view where the swap slice ends. In our example, this is at 1003, making the root slice start at 1004.
Another problem is that there is currently a bug in fdisk making it think the number of available cylinders is one above the real number of cylinders. In other words, when asked for the last cylinder, decrease the cylinder number (in this example: 5290) with one.
When the slice is created, we change the type to 8, for ext2.
BSD disklabel command (m for help):
n
Partition (a-p): b First cylinder (1-5290, default 1): 1004 Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):
t
Partition (a-c): b Hex code (type L to list codes): 8
The resulting slice layout should now be similar to this:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] a: 3 1003 1001 swap b: 1004 5289 4286 ext2 c: 1 5290* 5289* unused 0 0
Save the slice layout and exit
Exit the fdisk application by typing w. This will also save the slice layout.
Command (m for help):
w
Using fdisk to partition the disk (ARC/AlphaBIOS only)
The following parts explain how to create the example partition layout for ARC/AlphaBIOS:
Partition | Description |
---|---|
/dev/sda1 | Boot partition |
/dev/sda2 | Swap partition |
/dev/sda3 | Root partition |
Change the partition layout according to personal preference.
Identifying the available disks
To figure out what disks are running, use the following commands:
For IDE disks:
root #
dmesg | grep 'drive$'
For SCSI disks:
root #
dmesg | grep 'scsi'
From this output it should be easy to see what disks were detected and their respective /dev/ entry. In the following parts we assume that the disk is a SCSI disk on /dev/sda.
Now fire up fdisk:
root #
fdisk /dev/sda
Deleting all partitions
If the hard drive is completely blank, then first create a DOS disklabel.
Command (m for help):
o
Building a new DOS disklabel.
We start with deleting all partitions. The following shows how to delete a partition (in the example we use '1'). Repeat the process to delete all other partitions.
Use p to view all existing partitions. d is used to delete a partition.
command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 478 489456 83 Linux /dev/sda2 479 8727 8446976 5 Extended /dev/sda5 479 1433 977904 83 Linux Swap /dev/sda6 1434 8727 7469040 83 Linux
command (m for help):
d
Partition number (1-6): 1
Creating the boot partition
On Alpha systems which use MILO to boot, we have to create a small vfat boot partition.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-8727, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):
t
Selected partition 1 Hex code (type L to list codes): 6 Changed system type of partition 1 to 6 (FAT16)
Creating the swap partition
We will create a swap partition with a total size of 1 GB. Use n to create a new partition.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (17-8727, default 17): 17 Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):
t
Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap)
After these steps a layout similar to the following is shown:
Command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 16 16368 6 FAT16 /dev/sda2 17 971 977920 82 Linux swap
Creating the root partition
We will now create the root partition. Again, just use the n command.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (972-8727, default 972): 972 Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727
After these steps a layout similar to the following should be shown:
Command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 16 16368 6 FAT16 /dev/sda2 17 971 977920 82 Linux swap /dev/sda3 972 8727 7942144 83 Linux
Save the partition layout and exit
Save the changes made in fdisk by typing w.
Command (m for help):
w
Now that the partitions are created, continue with Creating filesystems.