2. Exam Objectives
Key Knowledge Areas
Allocate filesystems and swap space to separate partitions or disks.
Tailor the design to the intended use of the system.
Ensure the /boot partition conforms to the hardware architecture requirements for booting.
Objective 2: Linux Installation and Package Management
Design hard disk layout Weight: 2
Terms and Utilities
/ (root) filesystem
/var filesystem
/home filesystem
swap space
mount points
partitions
2
3. Extended partitions
3
The original MS DOS partition table was limited to 4 partitions
To work around this, scheme allows additional “logical” partitions – in a single “extended partition”.
If there are more than 4 partitions, one of the first four partitions will be an extended partition.
Ex:
Design hard disk layout
5. Partition scheme
5
Linux disk partition scheme table identifies the blocks for disks and partitions (use fdisk –l to see it)
A hard disk can be divided into several partitions.
Each partition functions as if it were a separate hard disk.
partitioning scheme is not built into hardware, or into BIOS. It is only a convention that many operating systems follow.
Ex: $ fdisk -l /dev/hda
Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders
Units = cylinders of 855 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 24 10231+ 82 Linux swap
/dev/hda2 25 25 48 10260 83 Linux native
/dev/hda3 49 49 408 153900 83 Linux native
/dev/hda4 409 409 790 163305 5 Extended
/dev/hda5 409 409 744 143611+ 83 Linux native
/dev/hda6 745 745 790 19636+ 83 Linux native
Design hard disk layout
6. Disks and partitions
6
There are two kinds of major partitions on a Linux system:
data partition: normal Linux system data, including root partition containing all data to start up and run the system;
swap partition: expansion of the computer's physical memory, extra memory on hard disk.
Normal server data and swap partitioning:
1.partition with all data necessary to boot the machine
2.partition with configuration data and server programs
3.one or more partitions containing the server data (database tables, user mails, an ftp archive etc.)
4.partition with user programs and applications
5.one or more partitions for the user specific files (home directories)
6.one or more swap partitions (virtual memory)
Division of hard disks into partitions is determined by the system administrator
Programs that offer services are kept in a different place than the data handled by the service. Different partitions should be created
Design hard disk layout
7. Partitions and Linux naming scheme
7
Linux disk naming scheme identifies disks and data/swap partitions on all disks.
Device name Meaning
/dev/hda devices, hard disk “a” (IDE, primary channel, master)
/dev/hdb devices, hard disk “b” (IDE, primary channel, slave)
/dev/hdc5 devices, hard disk “a”, partition “5” (IDE, secondary channel, master)
/dev/hdd2 devices, hard disk “a”, partition “2” (IDE, secondary channel, slave)
/dev/sda devices, SCSI disk “a”
/dev/sdd9 devices, SCSI disk “d”, partition “9”
yourname@yourcomp~> fdisk -l /dev/hd?Ex:
Design hard disk layout
8. Design hard disk layout
Formatting
8
LOW-LEVEL FORMATTING
Process of writing marks on magnetic media that are used to mark tracks and sectors.
Before format, the disk magnetic surface is a complete mess of magnetic signals.
After format, draws lines for tracks, divides tracks in sectors.
HIGH-LEVEL FORMATTING
Process of creating a filesystem.
9. Formatting
9
Floppies are formatted with fdformat cmd
Ex: yourname@yourcomp~> fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity
1440 kB.
Formatting ... done
Verifying ... done
Formatting the auto detected device (/dev/fd0), requires first the device set parameters with setfdprm.
Ex: yourname@yourcomp~> setfdprm /dev/fd0 1440/1440
yourname@yourcomp~> fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity
1440 KB.
Formatting ... done
Verifying ... done
badblocks cmd can be used to search disks or partitions or filesystems for bad blocks. does not format the disk.
bad blocks search can be done by mkfs cmd (which initializes the filesystem), Later checks should be done with badblocks
and new blocks should be added with fsck.
Design hard disk layout
10. File Systems
10
filesystem
is the methods and data structures that an operating system uses to keep track of files on disk or partition
or, the way the files are organized on disk
Linux Filesystems can be created with the mkfs command.
Cmd is a front end to several filesystem-specific commands (such as mkfs.ext3 for ext3 and mkfs.reiserfs for ReiserFS)
To view what filesystem-specific support is installed on the system use: ls /sbin/mk* command.
Linux Swapspaces are created with the mkswap command.
Ex: yourname@yourcomp~> ls /sbin/mk*
/sbin/mkdosfs /sbin/mkfs.ext2 /sbin/mkfs.ntfs
/sbin/mke2fs /sbin/mkfs.ext3 /sbin/mkfs.vfat
/sbin/mkfs /sbin/mkfs.ext4 /sbin/mkfs.xfs
/sbin/mkfs.btrfs /sbin/mkfs.ext4dev /sbin/mkhomedir_helper
/sbin/mkfs.cramfs /sbin/mkfs.msdos /sbin/mkswap
Create partitions and filesystems
11. File Systems
11
Linux Swapspaces and Filesystems can be created with fdisk
Ex: yourname@yourcomp~> fdisk -v
fdisk (util-linux-ng 2.16)
yourname@yourcomp~> sudo fdisk /dev/sdb
[sudo] password for:
The number of cylinders for this disk is set to 30401.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000404d6
Device Boot Start End Blocks Id System
/dev/sdb1 1 25 200781 83 Linux
/dev/sdb2 26 12965 103940550 83 Linux
/dev/sdb3 12966 30401 140054670 83 Linux
Command (m for help):
Create partitions and filesystems
12. Creating a swap space
12
swap space from other partition with mkswap
Ex: yourname@yourcomp~> mkswap /dev/sda4
Setting up swapspace version 1, size = 4192960 KiB
no label, UUID=8f5a3a05-73ef-4c78-bc56-0e9b1bcc7fdb
mkswap doesnt check if file or partition isn't used.
It can overwrite important files and partitions
swap space is part of hard disk that is used as virtual memory
Linux can use a normal file in filesystem or separate partition for swap space.
used as a raw partition, and will not contain any filesystem. type 82 (Linux swap);
Create partitions and filesystems
13. Creating a swap space
13
Ex: yourname@yourcomp~> dd if=/dev/zero of=/extra-swap bs=1024
count=1024
1024+0 records in
1024+0 records out
/extra-swap is the name of the swap file and the size of is given after the count=.
yourname@yourcomp~> mkswap /extra-swap 1024
Setting up swapspace, size = 1044480 bytes
After created a swap file or swap partition, you need to write a signature to its beginning;
contains administrative information used by kernel. command to do is mkswap
Ex:
the swap space is still not in use: it will exist, but the kernel does not use it to provide virtual memory.
Create partitions and filesystems
14. Creating a swap space
14
initialized swap space is used with swapon.
tells kernel that swap space can be used and path to swap space is given as argument
Ex:
yourname@yourcomp~> swapon /extra-swap
to start swapping on temporary swap file use the following command:
/dev/hda8 none swap sw 0 0
/swapfile none swap sw 0 0
startup scripts will run command swapon -a, which will start swapping on all the swap spaces listed in /etc/fstab
Ex:
Swap spaces can be used automatically by listing them in /etc/fstab file
swap space can be removed with swapoff
swap used automatically with swapon -a can be removed from with swapoff -a; it looks at /etc/fstab to find what to
remove
Create partitions and filesystems
15. Creating a swap space
15
monitor swap with free or top or in /proc/meminfo
View enabled swap devices use swapon –s or with cat /proc/swaps
yourname@yourcomp~> swapon –s
Filename Type Size Used Priority
/dev/sdb1 partition 514044 0 -1
/dev/sdb5 partition 4192928 0 -2
yourname@yourcomp~> cat /proc/swaps
Filename Type Size Used Priority
/dev/sdb1 partition 514044 0 -1
/dev/sdb5 partition 4192928 0 -2
Ex:
Create partitions and filesystems
16. Creating an ext3 filesystem
16
Ex: yourname@yourcomp~> mkfs -t ext3 /dev/sda8
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2624496 inodes, 10488429 blocks
524421 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
321 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
• To add journal to an existing ext2, use tune2fs with -j option.
• To display or set label for ext2 or ext3, use e2label. Labels limited to 16 characters.
• To display UUID (Universally Unique Identifier) for the formatted partition, use blkid cmd
Linux filesystems generate UUID when the filesystem is formatted - 128-bit identifier displayed as 32 hexadecimal digit and four
hyphens
Create partitions and filesystems
17. Other tools and filesystems
17
cfdisk tool (console based)
Ex:
Create partitions and filesystems
18. Other tools and filesystems
18
gpart partitioning tool
Ex:
Create partitions and filesystems
19. Linux file system
19
Linux filesystem contains files arranged on a block storage device in directories.
Linux filesystem is a single tree with the / directory as its root directory.
Ex:
Create partitions and filesystems
20. File system Hierarchy Standard
20
Directories required in / by the Filesystem Hierarchy Standard
Set of requirements and guidelines for file and directory placement under UNIX-like operating systems.
Directory Description
bin Essential command binaries
boot Static files of the boot loader
dev Device files
etc Host-specific system configuration
lib Essential shared libraries and kernel modules
media Mount point for removable media
mnt Mount point for mounting a filesystem temporarily
opt Add-on application software packages
sbin Essential system binaries
srv Data for services provided by this system
tmp Temporary files
usr Secondary hierarchy
var Variable data
http://www.pathname.com/fhs/
Create partitions and filesystems
22. Linux file system
22
A simple description of UNIX system, applicable to Linux, is:
"On a UNIX system, everything is a file; if something is not a file, it is a process.”
• Regular files: Contain normal data. Ex. text files, executable files or progs, input for or output from a program.
• Directories: Files that are lists of other files.
• Special files: The mechanism used for input and output. Most special files are in /dev
• Links: System to make a file or directory visible in multiple parts of the system's file tree.
• Domain sockets: Special file type (similar to TCP/IP sockets) providing inter-process networking protected by the file
system's access control.
• Named pipes: More or less like sockets. Form a way for processes to communicate with each other, without using
network socket semantics.
Create partitions and filesystems
23. Linux file system
23
The -l option to ls cmd displays the file type, using the first character of each input line
Good options are with -F and --color combined:
Ex: yourname@yourcomp~> ls -l
total 80
-rw-rw-r-- 1 jaime jaime 31744 Feb 21 17:56 intro Linux.doc
-rw-rw-r-- 1 jaime jaime 41472 Feb 21 17:56 Linux.doc
drwxrwxr-x 2 jaime jaime 4096 Feb 25 11:50 course
File types in ls -long list
Symbol Meaning
•- Regular file
•d Directory
•l Link
•c Special file
•s Socket
•p Named pipe
•b Block device
File types in ls –F
suffixes to non-standard file name. For mono-color use and printing
Character File type
•nothing Regular file
•/ Directory
•* Executable file
•@ Link
•= Socket
•| Named pipe
View info coreutils ls
Create partitions and filesystems
24. Control mounting and unmounting
mount points
24
If logical data is below root folder and there’s no change in the logical id of the partition
how do we see other logical data created by the other partitions that exist?
(Like C: change to D: and back to C: in windows )
All partitions are connected through the root directory via a mount point.
Mount point defines the place of a particular data set in the file system.
That is…
When a partition is mounted, files on its filesystem become part of the system.
In Linux partitions are mounted on directories, and files in the partition becomes files in the directory
Ex: # mke2fs /dev/hda2 # create the filesystem on a partition
# mkdir /home # make a place to put it
# mount /dev/hda2 /home # put it there
Use cmd mount to create mount points
25. fstab mount
25
Ex: ##
/etc/fstab
# Created by anaconda on Fri May 28 12:37:05 2010
##
Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=082fb0d5-a5db-41d1-ae04-6e9af3ba15f7 / ext4 defaults 1 1
UUID=488edd62-6614-4127-812d-cbf58eca85e9 /grubfile ext3 defaults 1 2
UUID=2d4f10a6-be57-4e1d-92ef-424355bd4b39 swap swap defaults 0 0
UUID=ba38c08d-a9e7-46b2-8890-0acda004c510 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
Example of Fedora 13 fstab with mount points
Control mounting and unmounting
26. fstab mount
26
Ex: # /etc/fstab: static file system information.
##
Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
##
<file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/sda7 during installation
UUID=8954fa66-e11f-42dc-91f0-b4aa480fa103 / ext3 errors=remount-ro 0 1
# /grubfile was on /dev/sda2 during installation
UUID=3a965842-b6dd-4d52-8830-2d0fdb4284a2 /grubfile ext3 defaults 0 2
/dev/sda5 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
developerWorks® ibm.com/developerWorks
Control
Example of Ubuntu 9.10 fstab with mount points
Control mounting and unmounting
27. umount points
27
Unmounting filesystems
Usually unmounted automatically on rebooted or shutdown.
When a filesystem is unmounted, any cached filesystem data in memory is flushed.
You may unmount manually.
This should be done for removing media (diskettes, DVD’s, USB drives).
Ex: # umount /dos
# mount /dev/sda9 /dos
# umount /dev/sda9
Use umount command, with argument for the device name or mount point
Control mounting and unmounting