分区规划及使用

硬盘结构及概念

磁道:track  划分为63个扇区

扇区:sector     一个扇区默认大小为512字节

磁头:head   逻辑磁头(盘面)数设为255个

柱面:cylinder   柱面大小= 255 x 63 x 512 字节 = 8MB

-- > 硬盘或分区的容量= 柱面大小 x 柱面数

硬盘分区管理

一块硬盘的“艺术”之旅:

识别硬盘——>分区规划——>格式化——>挂载使用

毛坯楼层——> 打隔断 ——> 装修 ——>入驻

两种硬盘分区方案

MSDOS —— Master Boot Record —— 第1个扇区(512)

    ** 4个主分区(3个主分区+1个扩展分区)+很多逻辑分区

    不足:最多4个主分区、最大磁盘2.2TB

MBR/msdos分区模式:1~4个主分区,或者0~3个主分区+1个扩展分区(n个逻辑分区)     最大支持容量为2.2TB的磁盘

                    扩展分区不能格式化

GPT —— GUID Partition Table

    最大支持18EB磁盘

    ** 1 EB = 1024 PB = 1024 x 1024 TB = 1024 x 1024 x 1024GB

分区工具

使用parted工具 【支持MSDOS、GPT分区布局】

    查看分区表:parted   /dev/sdb   print

    进入交互模式:parted  /dev/sdb

    获取交互指令帮助:(parted) help

新增分区:mkpart 【primary|logical|extended】 【ext4|vfat】开始 结束

删除分区:rm 【partition】

    GPT分区操作:

        parted  /dev/sdb

        (parted) mktable  gpt   【建立GPT分区表】

        (parted) mkpart  primary  ext4  0  20G   【建第1个20GB的ext3主分区】

        (parted) mkpart  primary  ext4  20G  40G  【建第2个20GB的ext3主分区】

        (parted) mkpart  primary  ext4  40G  100% 【剩余所有空间作一个分区】     (parted) quit   【退出】  

partx -a /dev/xdy  获取新分区表(或者partprobe在5版本适用)

**因parted命令支持两种分区模式,新硬盘需先利用mktable指定分区模式,在划分新的分区后,需要“partx –a”刷新分区表

使用fdisk工具:【只支持MSDOS分区布局】

查看分区表:fdisk -l 磁盘设备路径

                    修改硬盘的分区表:fdisk 磁盘设备路径

常用交互指令:

    m:列出指令帮助

    p:查看当前的分区表信息

    n:新建分区

    d:删除分区

    t:更改分区标识

    q:放弃分区更改并退出

    w:保存对分区表所做的更改

[root@server0 ~]# lsblk

[root@server0 ~]# fdisk /dev/vdb

p 查看分区情况------->n创建新的分区

                       ------->主分区(默认回车即可,即选p,主分区1)

                       ------->第一个主分区(默认回车即可,即默认分区号)

                       ------->起始扇区(默认回车即可)

                       ------->结束扇区(+200M)

p 查看分区情况------->n创建新的分区

                      ------->主分区(默认回车即可,即选p,主分区2)

                      ------->第二个主分区(默认回车即可,即默认分区号)

                      ------->起始扇区(默认回车即可)

                      ------->结束扇区(+2000M)

          ……

 当有3个主分区时即创建扩展分区4,且所有空间都给扩展分区

p 查看分区情况------->n创建新的分区

                      ------->扩展分区(默认回车即可,即选e,即扩展分区4)

                       ------->起始扇区(默认回车即可)

                       ------->结束扇区(默认回车即可,即将所有空间给扩展空间)

  p 查看分区情况------->n创建新的分区(默认回车即可,创建第一块逻辑分区)

                        ------->起始扇区(默认回车即可)

                        ------->结束扇区(+1000)

           ……

   输入w保存并退出

[root@server0 ~]# partprobe      #刷新分区表

[root@server0 ~]# ls /dev/vdb*

识别新分区表:当硬盘的分区表被更改以后,需要将分区表的变化及时通知linux内核

              最好reboot一次

              否则在访问分区时可能会找不到准确的设备

步骤:1)partprobe 硬盘设备;  2)reboot

格式化分区

常用的格式化工具

mkfs -t 文件类型 /dev/xdyz = mkfs.文件类型 /dev/xdyz

mkfs工具集:mkfs.ext3 分区设备路径 mkfs.ext4 分区设备路径

             mkfs.xfs 分区设备路径 mkfs.vfat -F 32 分区设备路径

按照不同的类型格式化分区:

[root@server0 ~]# mkfs.ext4 /dev/vdb1       /dev/vdb1===> EXT4类型

[root@server0 ~]# mkfs.xfs /dev/vdb2        /dev/vdb2===>XFS类型

新格式化的EXT3/EXT4文件系统,默认会有 lost+found 目录(失物招领)

手动挂载设备

[root@server0 ~]# mkdir /part1

[root@server0 ~]# mount

[root@server0 ~]# mkdir /part2

[root@server0 ~]# mount /dev/vdb2 /part2

补充:

df命令,查看一个文件属于哪一个设备以及这个设备的使用情况 

# df -h:文档的路径 查看正在挂载的设备使用情况(分区信息)  它也可用管道进行处理

# du -sh  /etc  #统计/etc目录的大小

Mount /dev/sdb1 /opt/

Cp -rpf /var/* /opt/

Rm -rf /var/*

Mount /dev/sdb1 /opt/

访问文件系统

访问已格式化的分区

1)使用mount命令挂载,并访问测试: mount 磁盘设备 创建的挂载点

2)使用df检查使用情况:df -hT 创建的挂载点

3)实现开机自动挂载:

配置文件/etc/fstab的记录格式

# vim  /etc/fstab   (写入一定要正确,否则重启无法成功)

设备路径     挂载点   类型      参数   备份标记  检测顺序

 /dev/vdb1   /part1   ext4     defaults     0        0

补充: #blkid /dev/vdb1

查看设备的UUID值(设备的唯一ID值)及文件系统类型:blkid  磁盘设备

[root@server0 ~]# vim   /etc/fstab 

[root@server0 ~]# tail -1 /etc/fstab

/dev/vdb1   /part1   ext4   defaults   0   0

4)检测配置 mount -a    

检测/etc/fstab开机自动挂载配置文件,格式是否正确

检测/etc/fstab中,书写完成,但当前没有挂载的设备,当前进行挂载

[root@server0 ~]# df -h

[root@server0 ~]# umount /part1

[root@server0 ~]# df -h

[root@server0 ~]# mount -a #检测/etc/fstab中已经书写,当前没有挂载

[root@server0 ~]# df -h

/etc/fstab文件在配置完成后,利用“mount –a”验证。如果该分区已经挂载,在利用“mount –a”则不会重新识别与挂载。

补充练习:为CentOS真机配置本地仓库

开机自动挂载RHEL7光盘镜像到/media/rhel7dvd

# mkdir  /media/rhel7dvd

# vim  /etc/fstab

.. ..

/ISO/rhel-server-7.2-x86_64-dvd.iso  /media/rhel7dvd  iso9660 loop 0 0

# mount  -a

# df  -hT  /media/rhel7dvd

# vim  /etc/yum.repos.d/rhel7.repo

[rhel7dvd]

name=RHEL7

baseurl=file:///media/rhel7dvd

enabled=1

gpgcheck=0

# yum  repolist  

###############################################################################

案例1:硬盘分区及格式化

使用fdisk分区工具在磁盘 /dev/vdb 上按以下要求建立分区:

    采用默认的 msdos 分区模式

    第1个分区 /dev/vdb1 的大小为 200MiB

    第2个分区 /dev/vdb2 的大小为 2000MiB

    第3个分区 /dev/vdb3 的大小为 1000MiB

完成分区后,能够配置开机自动挂载 /dev/vdb2 分区:

文件系统类型为 EXT4           将其挂载到 /mnt/part2 目录

##########################################################

思路:1.lsblk           #识别磁盘  也可用:ls /dev/新硬盘

      2.fdisk           #划分新的分区

      3.partprobe       #刷新新的分区

      4.mkfs.xfs        #格式化新的文件系统

      5.mount           #挂载

      6.vim /etc/fstab  #开机自动挂载

###########################################################

步骤一:新建分区表

1)打开fdisk工具,操作磁盘/dev/vdb

fdisk  /dev/vdb

    Welcome to fdisk (util-linux 2.23.2).

    Changes will remain in memory only, until you decide to write them.

    Be careful before using the write command.

    Device does not contain a recognized partition table

    Building a new DOS disklabel with disk identifier 0x9ac1bc10.

    Command (m for help):                         //交互操作提示信息

2)新建第1个分区/dev/vdb1

    Command (m for help): n                                  //新建分区

    Partition type:

       p   primary (0 primary, 0 extended, 4 free)

       e   extended

    Select (default p): p                                 //类型为p(主分区)

Partition number (1-4, default 1): 1                  //分区编号1,默认1

First sector (2048-20971519, default 2048):           //起始位置默认

    Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M  

    Partition 1 of type Linux and of size 200 MiB is set  //结束位置+200MiB大小

    Command (m for help): p                               //确认当前分区表

    .. ..

       Device Boot      Start         End      Blocks   Id  System

    /dev/vdb1            2048      411647      204800   83  Linux

3)同理,新建第2、3个分区/dev/vdb2、/dev/vdb3,分区大小为2000M、1000M

4)调整分区类型标识(可选)

将/dev/vdb1的类型(默认为83,表示EXT2/3/4分区)修改为8e(LVM设备):

    Command (m for help): t                                  //修改分区类型标识

    Partition number (1-3, default 3): 1                     //指定第1个分区

    Hex code (type L to list all codes): 8e                 //类型改为8e

    Changed type of partition 'Linux' to 'Linux LVM'

    Command (m for help): p                                  //确认当前分区表

    .. ..

       Device Boot      Start         End      Blocks   Id  System

    /dev/vdb1            2048      411647      204800   8e  Linux LVM

    /dev/vdb2          411648     4507647     2048000   83  Linux

    /dev/vdb3         4507648     6555647     1024000   83  Linux

6)保存分区更改,退出fdisk分区工具

w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    Syncing disks.

6)刷新分区表

[root@server0 ~]# partprobe  /dev/vdb

或者[root@server0 ~]# reboot     //要先检查分区是否创建成功,检查完毕刷新

                                 不显示的情况下,才能使用重启,是最后的选择

.. ..

步骤二:格式化及挂载分区

1)将分区/dev/vdb2格式化为EXT4文件系统

mkfs.ext4  /dev/vdb2

    .. .. 

    Allocating group tables: done  

    Writing inode tables: done 

    Creating journal (8192 blocks): done

    Writing superblocks and filesystem accounting information: done

2)配置开机自动挂载

vim  /etc/fstab

    .. ..

defaults        0 0

3)创建挂载点,并验证挂载配置

    [root@server0 ~]# mkdir  /mnt/part2          //创建挂载点

    [root@server0 ~]# mount  -a                  //挂载fstab中的可用设备

    [root@server0 ~]# df  -hT  /mnt/part2/       //检查文档所在的文件系统及设备

    Filesystem     Type  Size  Used Avail Use% Mounted on

    /dev/vdb2      ext4  1.9G  5.9M  1.8G   1% /mnt/part2

###############################################################################