硬盘管理:
MBR: Master boot record : 主引导记录
硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和分区有效标志(55AA)。
在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,16*4=64,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。

magic number:·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,称为“魔数”(magic number)。如果该标志错误系统就不能启动。

磁盘管理步骤:
添加设备 分区 格式化(创建文件系统) 创建挂载点 挂载 修改配置文件

[root@localhost ~]# fdisk -l #查看可用存储设备
[root@localhost ~]# fdisk /dev/sda
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 #删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
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): n #创建一个新的分区
Partition type:
p primary (2 primary, 0 extended, 2 free) #创建一个主分区
e extended #创建一个扩展分区
Select (default p): e
Partition number (3,4, default 3): #指定分区号
First sector (26208256-41943039, default 26208256): #指定开始柱面,默认回车就可以
Using default value 26208256
Last sector, +sectors or +size{K,M,G} (26208256-41943039, default 41943039): +5G #指定结束柱面,默认不指定的话是把剩下的所有空间分配给分区,等于说指定分区大小
Partition 3 of type Extended and of size 5 GiB is set

Command (m for help): p #打印分区表

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a705c

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 26208255 12591104 8e Linux LVM
/dev/sda3 26208256 36694015 5242880 5 Extended #表明是扩展 分区

Command (m for help): n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5) #创建一个逻辑分区
Select (default p): l
Adding logical partition 5
First sector (26210304-36694015, default 26210304):
Using default value 26210304
Last sector, +sectors or +size{K,M,G} (26210304-36694015, default 36694015): +1G
Partition 5 of type Linux and of size 1 GiB is set

Command (m for help): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a705c

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 26208255 12591104 8e Linux LVM
/dev/sda3 26208256 36694015 5242880 5 Extended
/dev/sda5 26210304 28307455 1048576 83 Linux

#逻辑分区的分区号从5开始,不管之前有没有第四或者第三个分区

Command (m for help): w #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

[root@localhost ~]# ls /dev/sda
/dev/sda /dev/sda1 /dev/sda2
[root@localhost ~]# partprobe /dev/sda
[root@localhost ~]# ls /dev/sda

/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 /dev/sda5

注:如果是RHEL6操作系统的话,使用partx -a /dev/sda 重新获取分区表

格式化
#mkfs.ext3 /dev/sdb1   或mkfs -t ext3 /dev/sdb1 #RHEL5 格式化
#mkfs.ext4 /dev/sdb1   或mkfs -t ext4 /dev/sdb1 #RHEL6 格式化

mkfs.xfs /dev/sda5 或mkfs -t xfs /dev/sda5

创建一个挂载点
[root@localhost ~]# mkdir /sda5
挂载
[root@localhost ~]# mount /dev/sda5 /sda5
查看挂载状况
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 10G 3.2G 6.9G 32% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 88K 2.0G 1% /dev/shm
tmpfs 2.0G 8.9M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sr0 3.8G 3.8G 0 100% /mnt
/dev/sda1 197M 125M 72M 64% /boot
tmpfs 394M 20K 394M 1% /run/user/0
/dev/sda5 1014M 33M 982M 4% /sda5

[root@localhost ~]# mount | grep sda5
/dev/sda5 on /sda5 type xfs (rw,relatime,attr2,inode64,noquota)

分区开机自动挂载
[root@localhost ~]# vim /etc/fstab
/dev/sda5 /sda5 xfs defaults 0 0
要挂载的分区 挂载点 文件系统类型 挂载选项 是否备份 是否检测
最后两个0
fs_dump 是否要使用dump命令进行备份. 0为不备份,1为要备份 。
fs_pass - 该字段被fsck命令用来决定在启动时是否需要被扫描的文件系统的顺序,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动 时扫描则设置该字段为0
使用 UUID实现开机自动挂载
UUID作用
UUID是一个标识你系统中的存储设备的字符串,其目的是帮助使用者唯一的确定系统中的所有存储设备,不管它们是什么类型的。它可以标识DVD驱动器,USB存储设备以及你系统中的硬盘设备等。
特点:
它是真正的唯一标志符
Linux中的许多关键功能现在开始依赖于UUID

获取设备的UUID
[root@localhost ~]# blkid | grep sda5
/dev/sda5: UUID="351fb366-4263-416a-b8c6-113f1b54a8b7" TYPE="xfs"
[root@localhost ~]# vim /etc/fstab
UUID=351fb366-4263-416a-b8c6-113f1b54a8b7 /sda5 xfs defaults 0 0

验证:
[root@localhost ~]# umount /dev/sda5
[root@localhost ~]# mount -a

如何实现光盘的开机自动挂载
[root@localhost ~]# vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
[root@localhost ~]# ll /dev/cdrom
lrwxrwxrwx 1 root root 3 Feb 23 08:19 /dev/cdrom -> sr0

特殊挂载方法:
[root@localhost ~]# mount -t xfs /dev/sda5 /sda5
[root@localhost ~]# mount -o loop rhel-server-7.2-x86_64-dvd /mnt
[root@localhost ~]# mount -o remount,ro /sda5

卸载分区
[root@localhost ~]# umount /dev/sda5
[root@localhost ~]# umount /sda5

无法卸载
[root@localhost ~]# umount /dev/sda5
umount: /sda5: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))

[root@localhost ~]# lsof /sda5
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2434 root cwd DIR 8,5 6 128 /sda5
[root@localhost ~]# kill -9 2434

[root@localhost ~]# fuser -m -u -v /sda5
USER PID ACCESS COMMAND
/sda5: root kernel mount (root)/sda5
root 39275 ..c.. (root)bash
[root@localhost ~]# kill -9 39275
[root@localhost ~]# umount /dev/sda5