本节所讲内容:
• 认识 SAS-SATA-SSD-SCSI-IDE 硬盘
• 使用 fdisk 对磁盘进行操作,分区,格式化
• 开机自动挂载分区
• 使用 parted 操作大于等于 4T 硬盘
• 扩展服务器 swap 内存空间
硬盘管理
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)。如果该标志错误系统就不能启动。
添加磁盘
【主要步骤】:1 添加设备分区 2.格式化(创建文件系统) 3 创建挂载点 4 指定卷标 5自动挂载 6 测试
1 用 fdisk 进行分区
留了 8G 左右空间,(如果显示没有空闲的空间,则可以添加一块新的硬盘到虚拟机中。)
#fdisk -l #查看磁盘信息
#fdisk /dev/sdb #创建/管理分区
m 获得帮助
p 打印分区表
n 新建
p 主分区 ,e 扩展 ( 逻辑分区) #在 MBR 这样分区表中,只有一个扩展分区,最多 4 个主分区
q退出
d删除
w保存
【例】: 创建一个扩展分区,再创建一个逻辑分区
[root@localhost Desktop]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35
Linux基础之——硬盘分区及挂载
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First cylinder (1428 - 2610, default 1428):
Using default value 1428
Last cylinder, +cylinders or +size{K,M,G} (1428 - 2610, default 2610): +6G
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35
Linux基础之——硬盘分区及挂载
Command (m for help): n
First cylinder (1428-2211, default 1428):
Using default value 1428
Last cylinder, +cylinders or +size{K,M,G} (1428-2211, default 2211): +2G
Command (m for help):p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35
Linux基础之——硬盘分区及挂载
Linux基础之——硬盘分区及挂载
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.
reboot#重启
2 格式化
#mkfs.ext3 /dev/sda5 #格式化为 ext3
#mkfs.ext4 /dev/sda5 #格式化为 ext4
3 创建挂载点
[root@localhost Desktop]# mkdir /sda5
[root@localhost Desktop]# mount /dev/sda5 /sda5/
[root@localhost Desktop]#ls /sda5/
lost+found
查看:
[root@localhost Desktop]# df -h
Linux基础之——硬盘分区及挂载
4 磁盘卷标
[root@localhost Desktop]# e2label /dev/sda1 #查看卷标
[root@localhost Desktop]# e2label /dev/sda5 home-4
创建一个卷标
5 开机自动挂载磁盘
修改配置文件:# vim /etc/fstab
Linux基础之——硬盘分区及挂载
这里最后两个 0代表如下:
①.fs_dump 是否要使用 dump 命令进行备份. 0 为不备份,1 为要备份
②.fs_pass 该字段被 fsck 命令用来决定在启动时是否需要被扫描的文件系统的顺序,根文件系统/对应该字段的值应该为 1,其他文件系统应该为 2。若该文件系统无需在启动 时扫描则设置该字段为 0
mount -a #检查 fstab 配置是否正确
每次在/etc/fstab 写入文件,必须执行,防止挂载出错,系统无法启动
6 测试卸载并通过卷标挂载
1)卸载
[root@localhost Desktop]# umount /sda5/#卸载
或:
[root@localhost Desktop]# umount /dev/sda5
[root@localhost Desktop]# ls /sda5/
[root@localhost Desktop]#mount -a#检查 fstab 配置是否正确
[root@localhost Desktop]# ls /sda5/
2)使用卷标开机自动挂载硬盘
[root@localhost Desktop]# e2label /dev/sda5
home-4
[root@localhost Desktop]# vim /etc/fstab
Linux基础之——硬盘分区及挂载
[root@localhost Desktop]# mount -a
[root@localhost Desktop]# ls /sda5/
lost+found
uuid
UUID 作用
UUID 是一个标识你系统中的存储设备的字符串,其目的是帮助使用者唯一的确定系统中的所有存储设备,不管它们是什么类型的。它可以标识 DVD 驱动器,USB 存储设备以及你系统中的硬盘设备等。
特点
它是真正的唯一标志符
Linux 中的许多关键功能现在开始依赖于 UUID
查看分区的 uuid 号
[root@localhost Desktop]# tune2fs -l /dev/sda2 | grep UUID
Filesystem UUID: ba5875b0-6c75-4c2f-a312-eb12e2a733a8
【例】:使用 UUID 挂载 sda1 分区
[root@localhost ~]# vim /etc/fstab #在最后添加以下内容
Linux基础之——硬盘分区及挂载
[root@localhost Desktop]# mkdir /test1
高级挂载
【例】
[root@localhost]# mount -t ext4 /dev/sda5 /sda5/
[root@localhost]# mount -o loop rhel-6.2-x86_64.iso /media/
[root@localhost]# mount -o remount,ro /sda5/ #这个命令只有先挂载上,才能重新挂载
[root@localhost]# touch /sda5/aaa.txt
1)开机自动挂载光盘
[root@localhost Desktop]# vim /etc/fstab
Linux基础之——硬盘分区及挂载
2)配置 yum 源
[root@localhost Desktop]# cat /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3)卸载
#umount /dev/sdb1
#umount /opt
【例】:无法卸载
[root@localhost Desktop]# umount /sda5/
Umount: /sda5: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
【解决方法 1】:通过 lsof 命令 lsof(list open files)查看当前使用的进程
作用:查看哪些命令打开了当前系统的哪个文件。
语法:lsof 文件系统挂载点
[root@localhost ~]#lsof /opt/ #重点看后三列内容
Linux基础之——硬盘分区及挂载
[root@localhost Desktop]# kill -9 2411 #根据 pid 号杀死进程
【解决方法 2】:通过 fuser 关闭进程。
[root@localhost Desktop]# fuser -m -u -v /sda5/
/sda5/: USER PID ACCESS COMMAND
root 3399 ..c.. (root)bash
root 3920 F.c.. (root)vim
-m 显示进程 ID
-u显示执行这个进程的用户名
-v 详细信息
GPT 分区
说明:GPT,全局唯一标识分区表(GUID Partition Table),GUID,与 MBR 最大 4 个分区表项的限制相比,GPT 对分区数量没有限制,但 Windows 最大仅支持 128 个 GPT 分区。GPT 可管理硬盘大小达到了 18EB(1EB=1024PB=1,048,576TB),不过 NTFS 格式最大仅支持 256TB。
1Parted 磁盘分区工具的安装
[root@localhost Desktop]# rpm -qf which parted
parted-2.1-17.el6.x86_64
2 获取 parted 工具帮助的方法
(只需输入 help 即可)
[root@localhost ~]# parted /dev/sdb
(parted) help
或[root@jetsen ~]# parted--help
3 退出 parted 工具
(只需输入 quit 即可)
(parted) quit
4 查看所有磁盘状态
[root@jetsen ~]#parted -l
5 开始通过 parted 工具来对磁盘进行操作
[root@jetsen ~]#parted /dev/sdb
(parted)p #输入 p 查看磁盘是分区状态
(parted)mklabel #创建分区表类型为 gpt
New disk labeltype? gpt
(parted) mkpart #创建分区
Partition name? []? mydisk1
File system type? [ext2] --指定分区文件系统类型 ,定义分区类型。默认就可以了。因为后期,我用使用 mkfs.ext4 格式化
Start? 1 ---指定开始位置
End? 100M---指定结束位置
(parted) P ----显示分区信息
(parted)mkpart
Partition name? []?2
File system type? [ext2]?
Start?100M
End? 200M
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Linux基础之——硬盘分区及挂载
(parted)quit ---退出
6 格式化
[root@localhost Desktop]# mkfs.ext4 /dev/sdc1
[root@localhost Desktop]# mount /dev/sdc1 /sdc1/
7 删除
[root@jetsen ~]#parted /dev/sdc
[root@jetsen ~]#parted /dev/sde
(parted)P ----显示分区信息
(parted) rm 2 #这个地方写对应的分区号就可以了。
(parted) quit
如果需要重启就重启一下。
扩展 swap 分区
1 新建 swap 分区
添加一个硬盘 sdb,然后创建一个普通分区: sda1 大小,1000M
mkswap /dev/sdb1 #格式化 sdb1 分区为 swap 格式
swapon /dev/sdb1 #启动 swap 分区
#vim /etc/fstab #开机自动挂载 ,扩展的 swap 分区 ,添加以下内容:
Linux基础之——硬盘分区及挂载
【说明】:只有重启才能生效,mount –a 无法自动扩展 swap 分区的。
swapoff /dev/sdb1 #关闭 swap 分区
重启后查看
2 查看命令
free –m //查看 swap 分区大小
作业:多练习今天讲到的知识点。熟练掌握!