ca88yzc 5

1天一点学学Linux之硬盘的分区与格式化,磁盘管理小结ca88yzc

Posted by

服务器添加3块磁盘的体系结构

这篇博文主要总结了Linux磁盘的一些操作,主要是硬盘的加载,分区(MBR分区和GPT分区),分区的挂载,以及swap分区的加载设置。

 

ca88yzc 1


引言

 

基础命令

为什么要把硬盘分区?

  1. [root@oldboylinux test]# free -m
  • df查看磁盘分区使用状况
    1. -l //仅显示本地磁盘(默认)
    2. -a //显示所有文件系统的磁盘使用情况,包含比如/proc/
    3. -h //以1024进制计算最合适的单位显示磁盘容量
    4. -H //以1000进制计算最合适的单位显示磁盘容量
    5. -t //显示指定类型文件系统的磁盘分区
    6. -T //显示磁盘分区类型
    7. -x //不显示指定类型文件系统的磁盘分区
  • du统计磁盘上的文件大小
    1. -b //以byte为单位统计文件
    2. -k //以KB为单位统计文件
    3. -m //以MB为单位统计文件
    4. -h //以1024进制计算最合适的单位显示磁盘容量
    5. -H //以1000进制计算最合适的单位显示磁盘容量
    6. -s //统计指定目标
  • 常用命令
    1. df -lhT
    2. df -lhT -t ext4(分区类型)
    3. df -lhT -x ext4
    4. du -s [指定目录]
    5. du -sb *.zip //模糊匹配
    6. du -sm *.zip
    7. du -sh *.zip

1、维护相关:如可以把相同类型,有共同安全需要的内容,放到不同的分区中,这样方便了维护。

  1.              total used free shared
    buffers cached

  2. Mem: 992 133 859 0 24 37

  3. -/+ buffers/cache: 70 921

  4. Swap: 511 0 511


2、效率因素:如果一个大的硬盘,在整个硬盘上找到相应的资料,很费时。

注意:

回顾磁盘分区时的注意事项:

3、硬盘限额:限额的控制,只能对分区来实施。

1、linux系统的特性是将系统不用的物理内存缓存起来,因此,859不是系统的真是内存。

  • 主分区和扩展分区总数不能超过4个。
  • 扩展分区最多只能有一个
  • 扩展分区不能直接存取数据

4、备份资料:这个和第一个控制有一点雷同,我可以对重要的信息放到某个分区,方便备份。

2、系统真正可用内存是921。

5、安全考虑:如果大的硬盘,一但有损坏的话,就有可能导致整个硬盘资料丢失,如果把硬盘的资料分开来存放的话,损失会很小。

3、buffers为写入缓冲区,sync将缓冲区数据写入磁盘。

  • Linux系统中硬件设备都是以文件的形式存在于根目录下的Dev目录下。
  • 硬件设备都是有Linux系统自动识别的。
  • 添加的新硬盘,必须进行分区、格式化、挂载后才能使用。
  • MBR分区模式:主分区不超过4个,单个分区容量最大为2TB
  • GPT分区模式:主分区个数“几乎”没有限制,单个分区容量“几乎”没有限制。GPT分区中,最多可以支持128个主分区,且每个分区的大小突破了MBR分区的2TB的限制,最大为18EB=18432PB=18874368TB。缺点是GPT的主分区中,不适合安装X86架构的系统。

你可以把这个磁盘想像成您家的房子,而分区就相当于房子里面的房间一样。

4、cache为读取数据的缓冲区。

当硬盘空间消耗殆尽时怎么办?

 

5、硬盘是机械的,无论是写入还是读取都太慢了,所以读取和写入都是用来缓存技术。

比较好的做法应该是:在保留原硬盘的基础上,给服务器添加新的硬盘。

为什么要对分区进行格式化?

6、门户架构网站都会采用缓存技术,来让用户写入读取尽可能不接触磁盘。


格式化就是对分区进行初始化的一种操作,为了让我们能向分区中写入数据。如果你看过一天一点学习Linux之认识文件系统
的话,那么就你会明白格式化操作其实就是创建分区的Inode/block/super
block/group block等等信息。

磁盘的内部结构

磁盘的内部结构主要包括:盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部分。

为虚拟机添加硬盘

 

磁头组件及磁头驱动装置

1、磁头组件。它由读写磁头、传动手臂、传动轴三部分组成。

磁盘读取数据的工作原理是利用特定的磁粒子的极性来记录数据。磁头在读取数据时,将磁粒子的不同极性转换成不同的电脉冲信号,再利用数据转换器将这些原始信号变成电脑可以使用的数据,写的操作正好与此相反。

2、磁头驱动装置。磁盘的寻道是靠移动磁头,而移动磁头则需要该装置驱动才能实现(机械操作)。磁头驱动装置由电磁线圈电机、磁头驱动小车、防震动装置构成,高精度的轻型磁头驱动装置能够对磁头进行正确的驱动和定位,并能在很短的时间内精确定位系统指令指定的磁道。

3、磁盘片。盘片是磁盘存储数据的真正载体,磁盘盘片大多采用金属薄膜材料(或有机玻璃材料),这种金属薄膜较软盘的不连续颗粒载体具有更高的存储密度、高剩磁及高矫顽力等优点。

4、主轴组件。主轴组件包括如轴承和驱动电机等。磁盘主轴的转数是衡量磁盘读写性能的重要参考之一。例:SAS15K,SATA10K。

5、前置控制电路。前置电路控制磁头感应的信号、主轴电机调速、磁头驱动和伺服定位等,由于磁头读取的信号微弱,将放大电路密封在腔体内可以减少外来信号的干扰,提高操作指令的准确性。

  1. 将虚拟机关机(poweroff)。(当然,也有服务器的主板支持热插拔的。可以带电连接新硬盘。)
  2. 虚拟机设置->下面的“添加”->类型选择“硬盘”->下一步->选择硬盘类型(默认的(SCSI)就好)->创建一个新的虚拟机硬盘(下一步)->设置磁盘最大值;(没什么特殊要求,基本都是下一步,最后一步OK)。
  3. 重启Linux系统,使用fdisk
    -l//显示每个硬盘的分区列表(新添加的硬盘是没有分区表的)可以看到Disk
    /dev/sdb:和Disk /dev/sda:2块硬盘,以及sda的分区表,没有sdb的分区表。
  4. 先使用MBR分区模式为sdb分区。

    [root@joe dev]# 
    

    fdisk
    /dev/sdb

        //进入分区模式
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0x9ce83f46.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    

    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

    WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
    switch off the mode (command ‘c’) and change display units to
    sectors (command ‘u’).

    Command (m for help):

    style=”background-color: #ffc000;”>m

       //查看帮助
    Command action
       a   toggle a bootable flag
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       d   delete a partition    //删除一个分区
       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    //修改分区的系统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
    Command action
    e extended //扩展分区
    p primary partition (1-4)//主分区
    p
    Partition number (1-4):

    style=”color: #800080;”>1

    First cylinder (1-2610, default 1): //扇区的范围(1-2610),默认开始1,直接回车则使用默认数值
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 500M

    Command (m for help): p

    Disk /dev/sdb: 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: 0x9ce83f46

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux //分配好的主分区1
    //添加第二个分区
    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4):
    Value out of range.
    Partition number (1-4): 2
    First cylinder (501-2610, default 501):
    Using default value 501
    Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): 500M
    Value out of range.
    Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610):
    Using default value 2610

    Command (m for help): p

    Disk /dev/sdb: 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: 0x9ce83f46

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux
    /dev/sdb2 501 2610 16948575 83 Linux //第二个分区
    //由于分配不合适主观意愿,想删除分区
    Command (m for help): d
    Partition number (1-4):

    style=”background-color: #ffc000;”>2

          //分区编号
    

    Command (m for help): p

    Disk /dev/sdb: 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: 0x9ce83f46

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux //第二个分区已经删除

    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4):

    style=”background-color: #ffc000;”>2

    First cylinder (501-2610, default 501):
    Using default value 501
    Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): 1000

    Command (m for help): p

    Disk /dev/sdb: 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: 0x9ce83f46

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux
    /dev/sdb2 501 1000 4016250 83 Linux

    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    e //建立扩展分区
    Partition number (1-4):

    style=”color: #800080;”> style=”text-decoration: underline;”>3

    First cylinder (1001-2610, default 1001):
    Using default value 1001
    Last cylinder, +cylinders or +size{K,M,G} (1001-2610, default 2610):
    Using default value 2610

    Command (m for help): p

    Disk /dev/sdb: 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: 0x9ce83f46

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux
    /dev/sdb2 501 1000 4016250 83 Linux
    /dev/sdb3 1001 2610 12932325 5 Extended

    Command (m for help): n
    Command action
    l logical (

    style=”color: #800080;”>5 or over)

        //此时扩展分区e没有了,说明MBR只能有一个扩展分区,接下来是逻辑分区
       p   primary partition (1-4)
    l
    First cylinder (1001-2610, default 1001): 
    Using default value 1001
    Last cylinder, +cylinders or +size{K,M,G} (1001-2610, default 2610): 1500
    

    Command (m for help): p

    Disk /dev/sdb: 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: 0x9ce83f46

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux
    /dev/sdb2 501 1000 4016250 83 Linux
    /dev/sdb3 1001 2610 12932325 5 Extended
    /dev/sdb5 1001 1500 4016218+ 83 Linux //逻辑分区是从5开始的,1-4只能是主分区和扩展分区的编号

    Command (m for help): n
    Command action
    l logical (5 or over)
    p primary partition (1-4)
    l
    First cylinder (1501-2610, default 1501):
    Using default value 1501
    Last cylinder, +cylinders or +size{K,M,G} (1501-2610, default 2610):
    Using default value 2610

    Command (m for help): p

    Disk /dev/sdb: 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: 0x9ce83f46

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux
    /dev/sdb2 501 1000 4016250 83 Linux
    /dev/sdb3 1001 2610 12932325 5 Extended
    /dev/sdb5 1001 1500 4016218+ 83 Linux
    /dev/sdb6 1501 2610 8916043+ 83 Linux

    Command (m for help):

    style=”background-color: #ffc000;”>w //保存写

    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@joe dev]# fdisk

    l
    

    Disk

    /dev/sdb

    : 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: 0x9ce83f46
    

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 500 4016218+ 83 Linux
    /dev/sdb2 501 1000 4016250 83 Linux
    /dev/sdb3 1001 2610 12932325 5 Extended
    /dev/sdb5 1001 1500 4016218+ 83 Linux
    /dev/sdb6 1501 2610 8916043+ 83 Linux

    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: 0x000a030a
    

    Device Boot Start End Blocks Id System
    /dev/sda1 * 1 26 204800 83 Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2 26 281 2048000 82 Linux swap / Solaris
    Partition 2 does not end on cylinder boundary.
    /dev/sda3 281 536 2048000 83 Linux
    Partition 3 does not end on cylinder boundary.
    /dev/sda4 536 2611 16669696 5 Extended
    /dev/sda5 536 2611 16668672 83 Linux

  5. 使用GPT分区模式分区(同时GPT的分区工具parted也可以MBR分区)

    [root@joe dev]# parted
    GNU Parted 2.1
    使用 
    

    /dev/sda

        //注意正在使用的是sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print all                                                        
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sda: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type      File system     标志
     1      1049kB  211MB   210MB   primary   ext4            启动
     2      211MB   2308MB  2097MB  primary   linux-swap(v1)
     3      2308MB  4405MB  2097MB  primary   ext4
     4      4405MB  21.5GB  17.1GB  extended
     5      4406MB  21.5GB  17.1GB  logical   ext4
    

 

企业生产工作中磁盘的选型

当前服务器市场,主流磁盘为SAS、SATA、SSD硬盘。

    Model: VMware, VMware Virtual S (scsi)
    Disk 

/dev/sdb:
     21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos    //sdb的应该是我们需要的gpt

    Number  Start  End  Size  Type  File system  标志


    警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
    错误: /dev/sr0: unrecognised disk label                                   

    (parted) 

select /dev/sdb
          //选择sdb                                            
    使用 /dev/sdb
    (parted) mkpart     //如果不进行gpt的选择设置,直接mkpart那么我们还是使用的MBR模式                                                      
    分区类型?  primary/主分区/extended/扩展分区? primary                     
    文件系统类型?  [ext2]? ^Z
    --------------------------------------------------------------------------------------------------
    (parted) 

select /dev/
    sdb                                                  
    使用 /dev/sdb
    (parted) mklabel gpt                                                      
    警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you
    want to continue?
    是/Yes/否/No? yes
    (parted) print all                                                        
    Model: VMware, VMware Virtual S (scsi)
    Disk 

/dev/sda:
     21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start   End     Size    Type      File system     标志
     1      1049kB  211MB   210MB   primary   ext4            启动
     2      211MB   2308MB  2097MB  primary   linux-swap(v1)
     3      2308MB  4405MB  2097MB  primary   ext4
     4      4405MB  21.5GB  17.1GB  extended
     5      4406MB  21.5GB  17.1GB  logical   ext4


    Model: VMware, VMware Virtual S (scsi)
    Disk 

/dev/sdb:
     21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start  End  Size  File system  Name  标志


    警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
    错误: /dev/sr0: unrecognised disk label                                   

    (parted) mkpart                                                           
    分区名称?  []? test1                                                     
    文件系统类型?  [ext2]? ext4
    起始点?

1 
               //以1开始,默认单位是M  unit GB 指定为GB为单位                                               
    结束点? 1000M                                                           
    (parted) print                                                            
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start   End     Size   File system  Name   标志
     1      1049kB  1000MB  999MB               test1

    (parted)

rm 1
         //删除分区                                                        
    (parted) print                                                            
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start  End  Size  File system  Name  标志

    (parted) mkpart                                                           
    分区名称?  []? test1                                                     
    文件系统类型?  [ext2]? ext4                                            
    起始点?0       //以0开始,出现了警告,这里是字节对齐的原因造成的,所以一般为了避免警告,我们不以0开始。                                                        
    结束点? 1000M
    警告: The resulting partition is not properly aligned for best performance.
    忽略/Ignore/放弃/Cancel? cancel                                           
    (parted) mkpart
    分区名称?  []? test1                                                     
    文件系统类型?  [ext2]? ext4                                              
    起始点?1                                                                
    结束点?1000M                                                            
    (parted) print                                                            
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start   End     Size   File system  Name   标志
     1      1049kB  1000MB  999MB               test1

    (parted) mkpart                                                           
    分区名称?  []? test2                                                     
    文件系统类型?  [ext2]? ext4                                              
    起始点? 1000M                                                            
    结束点? 1500M                                                            
    (parted) print
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start   End     Size   File system  Name   标志
     1      1049kB  1000MB  999MB               test1
     2      1000MB  1500MB  500MB               test2
    //上面是交互模式,下面是命令模式
    (parted) mkpart test3 

1500 3000
             //使用一条命令直接搞定 分区名 起始位 结束位                                  
    警告: The resulting partition is not properly aligned for best performance.    //出现分区的原因是起始的1500和上次结束的1500重叠了。
    忽略/Ignore/放弃/Cancel? cancel         
    (parted) mkpart test3 1501M 1700M                                         
    (parted) mkpart test4 1701M 1800M                                        
    (parted) mkpart test5 1801M 1900M                                        
    (parted) print                                                            
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start   End     Size    File system  Name   标志
     1      1049kB  1000MB  999MB                test1
     2      1000MB  1500MB  500MB                test2
     3      1501MB  1700MB  199MB                test3
     4      1701MB  1800MB  99.6MB               test4
     5      1801MB  1900MB  98.6MB               test5

    (parted) 

rm 5

    (parted) quit

第一部分:磁盘的分区

企业级SAS硬盘

企业里常见的SAS硬盘是15000转/分。当前主流300G、600G、1T,从具体的业务需求及性价比考虑,工作中多用300-600G的SAS硬盘。用于提供生产线上的普通对外提供服务的业务服务器。例如,生产线上的数据库业务、存储业务、图片业务及相关高并发业务(web
http、cache服务),总的来说,如果没有特殊业务需求,SAS磁盘是生产环境首选的磁盘配置。

  1. 分区完以后,就是格式化和挂载分区了。也就是设置文件系统。在这里需要注意以下内容:MBR分区只能格式化主分区和扩展分区,逻辑分无不能格式化
    GPT分区,在格式化以后,只能使用parted 的print查看格式结果
    挂载分区:分区默认的挂载目录/mnt目录挂载点必须存在。

    [root@joe dev]#
    

    ls -l /dev/sdb*

    brw-rw----. 1 root disk 8, 16 5月   7 01:18 /dev/sdb
    brw-rw----. 1 root disk 8, 17 5月   7 01:18 /dev/sdb1
    brw-rw----. 1 root disk 8, 18 5月   7 01:18 /dev/sdb2
    brw-rw----. 1 root disk 8, 19 5月   7 01:18 /dev/sdb3
    brw-rw----. 1 root disk 8, 21 5月   7 01:18 /dev/sdb5
    brw-rw----. 1 root disk 8, 22 5月   7 01:18 /dev/sdb6
    [root@joe dev]# mkfs.ext3 
    

    /dev/sdb1

            //第一种设置方式
    mke2fs 1.41.12 (17-May-2010)
    文件系统标签=
    操作系统:Linux
    块大小=4096 (log=2)
    分块大小=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    502944 inodes, 2008117 blocks
    100405 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=2059403264
    62 block groups
    32768 blocks per group, 32768 fragments per group
    8112 inodes per group
    Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
    
    正在写入inode表: 完成                            
    Creating journal (32768 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成
    
    This filesystem will be automatically checked every 23 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@joe dev]# mkfs 
    

    -t ext4 /dev/sdb2

            //第二种方法
    mke2fs 1.41.12 (17-May-2010)
    文件系统标签=
    操作系统:Linux
    块大小=4096 (log=2)
    分块大小=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    50288 inodes, 200812 blocks
    10040 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=209715200
    7 block groups
    32768 blocks per group, 32768 fragments per group
    7184 inodes per group
    Superblock backups stored on blocks: 
        32768, 98304, 163840
    
    正在写入inode表: 完成                            
    Creating journal (4096 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成
    
    This filesystem will be automatically checked every 26 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@joe dev]# 
    

    mkdir -p /mnt/joetest

        //首先建立挂载点
    [root@joe dev]# 
    

    mount /dev/sdb1 /mnt/joetest/

            //挂载分区
    [root@joe dev]# 
    

    umount /mnt/joetest/

                //卸载挂载点
    
    上面这中挂载方式是临时的,永久性的应该如下:
    vim 
    
    • /etc/
      fstab
      在末尾插入一行

    /dev/sdb1 /mnt/imooc ext3
    default 0 0

    设备名称    挂载点    文件系统类型
    保存退出即可
    
  2. swap交换分区(步骤为:建立一个普通的Linux分区,修改分区类型的16进制编码,格式化交换分区,启用交换分区。

    [root@joe dev]# 
    

    fdisk /dev/

    sdb
    
    WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): p
    
    Disk /dev/sdb: 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: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1        1000     8032468+  83  Linux
    /dev/sdb2            1001        1100      803250   83  Linux
    /dev/sdb3            1101        2610    12129075    5  Extended
    /dev/sdb5            1101        1500     3212968+  83  Linux
    /dev/sdb6            1501        2610     8916043+  83  Linux
    
    Command (m for help): t
    Partition number (1-6): 
    

    2

           //修改ID
    Hex code (type L to list codes): L
    
     0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
     1  FAT12           39  Plan 9          
    

    82 Linux swap

     / So c1  DRDOS/sec (FAT-
     2  XENIX root      3c  PartitionMagic  
    

    83 Linux

               c4  DRDOS/sec (FAT-
     3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
    

下面我们就用虚拟机来实验RHEL6上的硬盘分区与格式化

企业级SATA硬盘

企业级SATA硬盘7200-10000转/分,常见的容量为1T、2T、4T和6T,优点是经济实惠,容量大,从具体的业务需求及性价比考虑,工作中多用SATA磁盘做线下不提供服务的数据存储或者并发业务服务不是很大的业务应用,比如站点程序及数据库、图片的线下备份等。特性容量性价比高,一般2T的SATA磁盘较佳。

磁盘选购要点:

1、线上业务用SAS磁盘。

2、线下的业务用SATA磁盘,磁带库。

3、线上高并发、小容量的业务用SSD磁盘。

4、根据数据的访问热度,智能分析分层存储。

注意:千万不能用SATA磁盘来做在线高并发服务的数据存储或数据库业务。

    Hex code (type L to list codes): 82
    Changed system type of partition 2 to 82 (Linux swap / Solaris)

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

    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@joe dev]# fdisk 

/dev/
    sdb

    WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').

    Command (m for help): p

    Disk /dev/sdb: 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: 0x00000000

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1        1000     8032468+  83  Linux
    /dev/sdb2            1001        1100      803250  

 82 Linux swap /
     Solaris
    /dev/sdb3            1101        2610    12129075    5  Extended
    /dev/sdb5            1101        1500     3212968+  83  Linux
    /dev/sdb6            1501        2610     8916043+  83  Linux

    Command (m for help): q

    [root@joe dev]# mkswap 

/dev/sdb2
        //设置交换区
    Setting up swapspace version 1, size = 803244 KiB
    no label, UUID=c7d31434-4013-4bbb-b68e-29b501934377
    [root@joe dev]# swapon 

/dev/sdb2
        //开启交换区
    [root@joe dev]# free
                 total       used       free     shared    buffers     cached
    Mem:       1030612     132468     898144          0      13612      51388
    -/+ buffers/cache:      67468     963144
    Swap:      

2851232 0 2851232

    [root@joe dev]# swapoff 

/dev/sdb2
        //关闭交换区
    [root@joe dev]#

 

磁盘相关名词解释

英文

中文

disk

磁盘

head

磁头

sector

扇区

track

磁道

cylinder

柱面

units

单元块(一个柱面的大小)

block

数据块

inode

索引节点

在磁盘不工作的时候,磁头停靠在靠近主轴接触盘片的表面,即线速度最小的地方,这里是一个不存放任何数据的特殊区域,称为启停区或着陆区(landing
zone),启停区以外就是数据区。

在磁盘的最外圈,离主轴最远的磁道称为”0″磁道,磁盘数据的存放就是从最外圈”0″磁道开始的。”0″磁道非常重要,系统的引导程序就在0柱面0磁道1扇区的前446bytes。

在虚拟机上增加一块硬盘

磁道

每个盘片有两个面,都可记录信息。盘片表面以盘片中心为圆心,用于记录数据的不同半径的圆形磁化轨迹就称为磁道。

磁盘在格式化时被划分成许多同心圆,这些同心圆的轨迹叫做磁道(track)。磁道由盘面从外向内依次从0开始顺序编号。

我以VMware
workstation为例,演示如何给RHEL6系统上增加一块SCSI硬盘,并设置大小写为20G。

柱面

所有的盘面上同一个半径的磁道的圆形轨迹从上到下依次会成一个圆柱体,就称作柱面(cylinder),每个圆柱上的磁头由上而下从”0″开始编号。

柱面数=一个盘面的磁道数

关机状态下:在VMware
Workstation的工具栏中选择VM——Settings——Hardware——Add——选择Hard
Disk——Next——Create a virtual
disk——Next——SCSI(Recommended)——Next——Maximum disk
size(GB):20.0——Next——Finish

扇区

盘面有圆心向四周画直线,不同的磁道被直线分成许多扇形(弧形)的区域,每个弧形的区域叫做扇区,每个扇区大小为512字节。

操作系统是以扇区(sector)为单位将信息存储在磁盘上,一般情况下,每个扇区的大小是512个字节。一个扇区主要有两个部分内容,存储数据地点的标识符和存储数据的数据段。

扇区的第一个主要部分是标识符。标识符就是扇区头标,包括组成扇区三维地址的三个数字,扇区所在的磁头(或盘面)、磁道(或柱面号)以及扇区在磁道上的位置即扇区号。投标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。有些磁盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。最后,扇区头标以循环冗余校验(CRC)值作为结束,以供控制器检验扇区头标的读出情况,确保准备无误。

扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。在初始准备期间,计算机用512个虚拟信息字节(实际数据的存放地)和与这些虚拟信息字节相应的ECC数字填入这个部分。

这样就就为你的系统增加了一块20G的SCSI的硬盘了,然后启动系统,下面就开始今天的分区操作了。

磁道柱面扇区总结

磁盘最基本的组成部分是由坚硬的金属材料制成的涂以磁性介质的盘片(有很多层),不同容量磁盘的盘片数不等。

1、一块磁盘有2-14个盘片,每个盘片有两个面,每个面对应一个读写磁头,用磁头号来区分盘面,即盘面数就是磁头数,盘片数*2=磁头数(盘面数)。

2、不同盘面的磁道被划分为多个扇形区域,每个区域就是一个扇区(sector)。

3、同一个盘面,以盘片中心为圆心,每个不同半径的圆形轨迹就是一个磁道(track)。

4、不同盘面相同半径的磁道组成一个圆柱面就是柱面(cylinder)。

5、一个柱面包含多个磁道(这些磁道半径相同),一个磁道包含多个扇区。

6、数据信息记录可表示为:某磁头、某磁道(柱面)、某扇区。

 

磁盘容量计算

  1. [root@oldboylinux ~]# fdisk -l
  1.  

  2. Disk /dev/sda: 8589 MB, 8589934592
    bytes

  3. 255 heads, 63 sectors/track, 1044
    cylinders

  4. Units = cylinders of 16065 * 512 =
    8225280 bytes

  5. Sector size (logical/physical): 512
    bytes / 512 bytes

  6. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  7. Disk identifier: 0x000ec58f

  8.  

  9.    Device Boot Start End Blocks Id
    System

  10. /dev/sda1 * 1 26 204800 83 Linux

  1. Partition 1 does not end on cylinder
    boundary.

  2. /dev/sda2 26 91 524288 82 Linux swap /
    Solaris

  3. Partition 2 does not end on cylinder
    boundary.

  4. /dev/sda3 91 1045 7658496 83 Linux

方法一:

磁盘容量=512*扇区数*磁道数*磁头数

每个磁道的大小=512*扇区数

一个盘面的大小=512*扇区数*磁道数

方法二:

磁盘容量=柱面数*柱面大小

柱面数=磁道数

柱面大小=磁道大小*磁头数

磁道大小=512*扇区数

  1. [root@oldboylinux ~]# fdisk -l
    /dev/sda1

  2.  

  3. Disk /dev/sda1: 209 MB, 209715200 bytes

  1. 255 heads, 63 sectors/track, 25
    cylinders

  2. Units = cylinders of 16065 * 512 =
    8225280 bytes

  3. Sector size (logical/physical): 512
    bytes / 512 bytes

  4. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  5. Disk identifier: 0x00000000

磁头数:255 heads,扇区数:63sectors/track,柱面数:25cylinders。

磁盘大小=512*扇区数*磁道数*磁头数=512*255*63*25=205632000 bytes

对硬盘进行分区操作

机械磁盘读写原理

1、磁盘是按照柱面为单位读写数据的,即先读取同一个盘面的某一个磁道,读完之后,如果数据没有读完,磁头也不会切换其他的磁道,而是选择切换磁头,读取下一个盘面的相同半径的磁道,直到所有盘面的相同半径的磁道读取完成之后,如果数据还没有读写完成,才会切换到其他不同半径的磁道,这个切换磁道的过程称为寻道。

2、不同磁头间的切换是电子切换,而不同磁道间的切换需要磁头做径向运动,这个径向运动需要步进电机调节,这个动作是机械的切换。

 

磁盘分区

ca88yzc 2
ca88yzc 3

磁盘存储逻辑结构

ca88yzc 4

一个硬盘的存储结构包括主引导记录、分区表、分区结束标志,及其它分区的引导信息及数据区信息。

主引导扇区在整个硬盘里是唯一的,也就是一个硬盘只能有一个,下面是0磁道1扇区的放大图示。

ca88yzc 5

16字节分区表的内容

字节数

说明

1bytes

state:分区状态,0=未激活,0x80=激活。

1bytes

startHead:分区起始磁头号

2bytes

startSC:分区起始扇区和柱面号,低字节的低6位为扇区号,高2位为柱面号的第9,10位,高字节为柱面号的低8位。

1bytes

type:分区类型,如0x0B=FAT32,0x83=linux等,00表示此项未用

1bytes

endHead:分区结束磁头号

2bytes

endSC:分区结束扇区和柱面号

4bytes

Relative:线性寻址方式下分区相对扇区地址(对于基本分区即为绝对地址)

4bytes

sectors:分区大小(总扇区数)

备份与恢复MBR

  1. [root@oldboylinux ~]# dd if=/dev/sda of=mbr.bin bs=512 count=1
    #备份MBR

  2. 1+0 records in

  3. 1+0 records out

  4. 512 bytes (512 B) copied, 0.000217105
    s, 2.4 MB/s

  5. [root@oldboylinux ~]# od -xa mbr.bin
    #查看MBR

  6. 0000000 48eb 1090 d08e 00bc b8b0 0000
    d88e c08e

  7.           k H dle dle so P < nul 0 8
    nul nul so X so @

  8. 0000020 befb 7c00 00bf b906 0200 a4f3
    21ea 0006

  9.           { > nul | ? nul ack 9 nul
    stx s $ j ! ack nul

  10. 0000040 be00 07be 0438 0b75 c683 8110
    fefe 7507

  11.         nul > > bel 8 eot u vt
    etx F dle soh ~ ~ bel u

  12. 0000060 ebf3 b416 b002 bb01 7c00 80b2
    748a 0203

  13.           s k syn 4 stx 0 soh ; nul | 2
    nul nl t etx stx

  14. 0000100 0080 8000 8176 0000 0800 90fa
    f690 80c2

  15.         nul nul nul nul v soh nul nul
    nul bs z dle dle v B nul

  16. 0000120 0275 80b2 59ea 007c 3100 8ec0
    8ed8 bcd0

  17.           u stx 2 nul j Y | nul nul 1 @
    so X so P <

  18. 0000140 2000 a0fb 7c40 ff3c 0274 c288
    f652 80c2

  19.         nul sp { sp @ | < del t stx
    bs B R v B nul

  20. 0000160 5474 41b4 aabb cd55 5a13 7252
    8149 55fb

  21.           t T 4 A ; * U M dc3 Z R r I
    soh { U

  22. 0000200 75aa a043 7c41 c084 0575 e183
    7401 6637

  23.           * u C sp A | eot @ u enq etx
    a soh t 7 f

  24. 0000220 4c8b be10 7c05 44c6 01ff 8b66
    441e c77c

  25.          vt L dle > enq | F D del
    soh f vt rs D | G

  26. 0000240 1004 c700 0244 0001 8966 085c
    44c7 0006

  27.         eot dle nul G D stx soh nul f
    ht \ bs G D ack nul

  28. 0000260 6670 c031 4489 6604 4489 b40c
    cd42 7213

  29.           p f 1 @ ht D eot f ht D ff 4
    B M dc3 r

  30. 0000300 bb05 7000 7deb 08b4 13cd 0a73
    c2f6 0f80

  31.         enq ; nul p k } 4 bs M dc3 s nl
    v B nul si

  32. 0000320 f084 e900 008d 05be c67c ff44
    6600 c031

  33.         eot p nul i cr nul > enq | F
    D del nul f 1 @

  34. 0000340 f088 6640 4489 3104 88d2 c1ca
    02e2 e888

  35.          bs p @ f ht D eot 1 R bs J A b
    stx bs h

  36. 0000360 f488 8940 0844 c031 d088 e8c0
    6602 0489

  37.          bs t @ ht D bs 1 @ bs P @ h
    stx f ht eot

  38. 0000400 a166 7c44 3166 66d2 34f7 5488
    660a d231

  39.           f ! D | f 1 R f w 4 bs T nl f
    1 R

  40. 0000420 f766 0474 5488 890b 0c44 443b
    7d08 8a3c

  41.           f w t eot bs T vt ht D ff ; D
    bs } < nl

  42. 0000440 0d54 e2c0 8a06 0a4c c1fe d108
    6c8a 5a0c

  43.           T cr @ b ack nl L nl ~ A bs Q
    nl l ff Z

  44. 0000460 748a bb0b 7000 c38e db31 01b8
    cd02 7213

  45.          nl t vt ; nul p so C 1 [ 8
    soh stx M dc3 r

  46. 0000500 8c2a 8ec3 4806 607c b91e 0100
    db8e f631

  47.           * ff C so ack H | ` rs 9
    nul soh so [ 1 v

  48. 0000520 ff31 f3fc 1fa5 ff61 4226 be7c
    7d7f 40e8

  49.           1 del | s % us a del & B
    | > del } h @

  50. 0000540 eb00 be0e 7d84 38e8 eb00 be06
    7d8e 30e8

  51.         nul k so > eot } h 8 nul k
    ack > so } h 0

  52. 0000560 be00 7d93 2ae8 eb00 47fe 5552
    2042 4700

  53.         nul > dc3 } h * nul k ~ G R
    U B sp nul G

  54. 0000600 6f65 006d 6148 6472 4420 7369
    006b 6552

  55.           e o m nul H a r d sp D i s k
    nul R e

  56. 0000620 6461 2000 7245 6f72 0072 01bb
    b400 cd0e

  57.           a d nul sp E r r o r nul ;
    soh nul 4 so M

  58. 0000640 ac10 003c f475 00c3 0000 0000
    0000 0000

  59.         dle , < nul u t C nul nul
    nul nul nul nul nul nul nul

  60. 0000660 0000 0000 0000 0000 c58f 000e
    0000 2080

  61.         nul nul nul nul nul nul nul nul
    si E so nul nul nul nul sp

  62. 0000700 0021 9f83 1906 0800 0000 4000
    0006 9f00

  63.           ! nul etx us ack em nul bs
    nul nul nul @ ack nul nul us

  64. 0000720 1907 e482 5a0a 4800 0006 0000
    0010 e400

  65.         bel em stx d nl Z nul H ack nul
    nul nul dle nul nul d

  66. 0000740 5a0b fe83 ffff 4800 0016 b800
    00e9 0000

  67.          vt Z etx ~ del del nul H syn
    nul nul 8 i nul nul nul

  68. 0000760 0000 0000 0000 0000 0000 0000
    0000 aa55

  69.         nul nul nul nul nul nul nul nul
    nul nul nul nul nul nul U *

  70. 0001000

  71. [root@oldboylinux ~]# dd if=mbr.bin of=/dev/sda bs=512 count=1
    #恢复MBR

 

磁盘分区

1、磁盘分区的实质就是针对0磁头0磁道1扇区的前446字节后面接下来的64bytes的分区表进行设置,即主要是划分起始以及结束磁头号,及扇区号和柱面号。

2、分区工具有fdisk(适合小于2T的磁盘分区),parted(适合大于2T的磁盘分区,可以对小于2T的磁盘分区),fdisk首选,只有大于2T时才会选parted。

3、一块磁盘的分区表仅有64bytes大小,每个分区表要占用16字节,因此一块磁盘仅支持四个分区表信息,即主分区+扩展分区的总量不超过4个。

4、磁盘分区是按照柱面(cylinder)来划分的。

5、扩展分区不能直接使用的,还需要在扩展分区的基础上创建逻辑分区。

6、扩展分区有自己的分区表,因此扩展分区下面的逻辑分区可以有多个。

磁盘在使用前一般需要进行分区,当然如果不分区直接格式化使用也可以,但这不是常见情况。磁盘分区有主分区、扩展分区和逻辑分区。一块硬盘最多可以有4个分区表信息(磁盘本身限制),其中一个主分区的位置可以用一个扩展分区替换,且一块硬盘只能有一个扩展分区(操作系统限制),在这个扩展分区中可以划分多个逻辑分区(IDE磁盘分区编号大概5-63),SATA(编号5-15)。

一台服务器6块600G的磁盘,raid5后,总大小3T,次数无法装系统。解决办法是做raid5后,不要直接重启装系统,而是再raid界面,继续分一个小的虚拟磁盘vd
200G,用这个200G的虚拟磁盘装系统,装完系统后再把剩余的2.8T通过parted分区。

[[email protected]
~]# fdisk -l

主分区primary

主分区是磁盘上必须存在的分区,一般为磁盘的第一个分区。在一个磁盘上最多只能有4个主分区。

一个磁盘想分6个分区,主分区和扩展分区的数量:

1p+1e,2p+1e,3p+1e。

显示出系统中所有的硬盘信息

扩展分区Extended

扩展分区就像一个虚拟出来的一个小硬盘一样,但是不同的是没有MBR,而只有扩展分区表,而且这个扩展分区表示没有64bytes的限制的,所以可以在扩展分区上划分多个逻辑分区。一块磁盘只能存放一个扩展分区,并且扩展分区不能直接存放数据,扩展分区受限于操作系统。

 

逻辑分区logical

不能在磁盘中单独直接划分逻辑分区(fdisk),逻辑分区必须存在于扩展分区内。在扩展分区内可以划分多个逻辑分区,逻辑分区的编号从数字5开始。在这个扩展分区内可以划分多个逻辑分区(IDE磁盘大概编号可以是5-63)。

[[email protected]
~]# fdisk -l

磁盘分区注意事项

1、任意多个主分区,但要求1<=主分区数量<=4。

例如,一个硬盘可以分为4个主分区、3个主分区、2个主分区、1个主分区。

2、扩展分区可以和主分区组合,但要求2<=(主分区+扩展分区)<=4。

例如:3个主分区+1个扩展分区、2个主分区+1个扩展分区或1个主分区+1个扩展分区。当总分区的数量大于4个的时候,必须提前分一个扩展分区。

3、如果要分成四个磁盘分区的话,那么分区方式可以为p+p+p+p或p+p+p+e。

注意:

由于MBR及磁盘分区表大小的限制,如果对磁盘分配了4p或3p+e后,即使磁盘还有剩余未分的空间,那么这部分空间也无法分区使用了(因为无分区可分了,分区表空间已经被沾满)。因此,在做分区规划时,如果业务需要,在分区之前就已经明确要超过4个分区,就可以选择3p+e的分区方式,并且在最后一个扩展分区要将所有的剩余空间都分配给这个扩展分区。当然,也可以采用1p+1e、2p+1e的分区方式,其实就是主分区不能分完,保留不分。

说明:

1、扩展分区不是一个真正的可用分区,建立完扩展分区后,还需要在扩展分区上面建立逻辑分区才可以使用。

2、对于主分区和逻辑分区在一本的数据存储使用上是没有区别的(对于大多数的数据存储),在安装操作系统时第一个分区要选主分区。

3、分区数字编号1-4留给主分区或扩展分区使用,逻辑分区编号只能从5开始,即使1-4分区号有剩余,也不会分配给逻辑分区。

4、对硬盘分区,实际上就是修改硬盘的分区表(partition
table),也就是说可以通过fdisk分区实际上就是在修改64字节的分区表,分区对应的数据没有关系。因此,理论上调整分区大小,不会删除分区内的数据。

 

分区方案

方案一:集群结构中的某个节点,数据有多份或者不重要。

/boot 100MB linux引导程序

swap 物理内存的1.5倍,当内存大于等于8G时,给8G即可。

/ 剩余硬盘大小

方法二:数据库及存储,有大量重要数据

/boot 100MB

/ 50-200G

swap 物理内存的1.5倍,当内存大于等于8G时,给8G即可。

/data 剩余硬盘大小,放数据库及存储数据。

方案三:门户级别或大网站

/boot 100MB

swap 物理内存的1.5倍,当内存大于等于8G时,给8G即可。

/ 50-200G

剩余空间保留,不再进行分区,将来分给别的需要的部门。

Disk /dev/sda: 21.5 GB, 21474836480 bytes

硬盘分区的设备名

在linux系统中,是通过设备名来访问设备的,设备名存放在”/dev”目录中。

设备名称的定义规则如下,其他的分区依次类推:

系统的第一块IDE接口的硬盘:/dev/hda

系统的第二块IDE接口的硬盘:/dev/hdb

系统的第一块SCSI接口的硬盘:/dev/sda

系统的第二块SCSI接口的硬盘:/dev/sdb

SATA、SAS都是sd开头。

每个分区则使用磁盘名称加对应的数字编号表示:

系统的第一块IDE接口硬盘的第一个分区:/dev/hda1

系统的第一块IDE接口硬盘的第五个分区:/dev/hda5

系统的第二块SCSI接口硬盘的第一个分区:/dev/sdb1

系统的第二块SCSI接口硬盘的第五个分区:/dev/sdb5

注意:

1、分区数字编号1-4留给主分区或扩展分区使用,逻辑分区编号只能从5开始。

2、IDE硬盘设备名均以/dev/hd开头,不同硬盘编号依次是/dev/hda/、/dev/hdb、/dev/hdc…。

3、SCSI/SAS/SATA/USB接口硬盘的设备名均以/dev/sd开头。不同硬盘编号依次是/dev/sda、/dev/sdb、/dev/sdc…。

4、特别注意,SAS/SATA为当前互联网生产环境主流硬盘接口,SSD固态硬盘,由于是电子设备,性能很高,也逐渐被应用。

5、linux环境下没有盘符的概念。要对磁盘设备进行操作,需要使用磁盘设备名,读取磁盘设备内容,需要把创建的分区或逻辑卷上的文件系统挂载到指定的目录上。

6、在linux系统上划分了分区之后,还要在分区上创建文件系统。

255 heads, 63 sectors/track, 2610 cylinders

文件系统类型

文件系统是对一个存储设备上的数据和元数据进行组织的一种机制。文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区上组织文件的方式和方法,常见文件系统如ext2、ext3、ext4、NTFS、FAT、FAT32等。文件系统是组织存储文件或数据的方法,目的是易于查询和存取数据。因此,如果磁盘上没有文件系统也就无法存储数据了,因此,在磁盘分区后能够使用之前必须建立对应的文件系统才行。

文件系统是基于存储设备的,比如硬盘或光盘,并且包含文件物理位置的维护,文件系统也可以说是虚拟数据或网络数据存储的方法,比如NFS、MFS、GFS。目前unix、linux的文件系统有很多种实现,例如:UFS(基于BSD的unix文件系统)、ext2、ext3、ext4、zfs、xfs和reiserfs等。

注意:

1、文件系统是对一个存储设备上的数据和元数据进行组织的一种机制。

2、分区必须格式化创建文件系统才能存放数据。

3、一个分区只能有一种文件系统。

4、linux下常见文件系统ext2、ext3、ext4、zfs、xfs(CentOS7)和reiserfs(单独安装)。windows下常见文件系统NTFS、FAT32。

Units = cylinders of 16065 * 512 = 8225280 bytes

文件系统的选择

SAS、SATA银盘文件系统选择:

1、reiserfs:大量小文件业务首选reiserfs(100k以内)

2、xfs:有的门户的数据块mysql业务。

4、ext4:视频下载、流媒体、数据库、小文件业务。

5、ext2:没有日志,CDN网站加速服务。

常用应用:

CentOS5.x系统:默认ext3。

CentOS6.x系统:默认ext4。

CentOS7.x系统:默认xfs。

SSD文件系统选择

ext4、reiserfs可以作为SSD文件系统,但未对SSD做优化,不能充分发挥SSD性能,并影响SSD使用时间。

btrfs对SSD作了优化,mount通过参数启用。但btrfs仍处于试验阶段,生产环境谨慎使用。

jffs32、nilfs2、yaffs是常用的flash file
system,在嵌入式环境广泛应用,建议使用。

在linux中制作文件系统

用类似如下命令在linux中制作并优化reiserfs文件系统:

/sbin/mkreiserfs /dev/sda2

用类似如下命令在linux中制作xfs文件系统:

mkfs -t xfs -f /dev/sda2

注意:ext3fs其实是简单的激活了记账的ext2fs。当创建该文件系统时,对mke2fs使用-j选项:

/sbin/mke2fs -j /dev/sda2

查看目前支持的文件系统

  1. [root@oldboylinux ~]# ls
    /lib/modules/2.6.32-504.el6.x86_64/kernel/fs/

  2. autofs4 cramfs ext3 gfs2 mbcache.ko
    squashfs

  3. btrfs dlm ext4 jbd nfs ubifs

  4. cachefiles ecryptfs fat jbd2
    nfs_common udf

  5. cifs exportfs fscache jffs2 nfsd xfs

  1. configfs ext2 fuse lockd nls

Sector size (logical/physical): 512 bytes / 512 bytes

文件系统内部

  1. [root@oldboylinux ~]# dumpe2fs
    /dev/sda

  2. dumpe2fs 1.41.12 (17-May-2010)

  3. dumpe2fs: Bad magic number in super-block while trying to open /dev/sda

  4. Couldn’t find valid filesystem
    superblock.

  5. [root@oldboylinux ~]# dumpe2fs
    /dev/sda1

  6. dumpe2fs 1.41.12 (17-May-2010)

  7. Filesystem volume name: <none>

  1. Last mounted on: /boot

  2. Filesystem UUID:
    16664a83-1118-495f-af51-363c9f6fb6e0

  3. Filesystem magic number: 0xEF53

  4. Filesystem revision #: 1 (dynamic)

  1. Filesystem features: has_journal
    ext_attr resize_inode dir_index filetype needs_recovery extent
    flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
  1. Filesystem flags:
    signed_directory_hash

  2. Default mount options: user_xattr acl

  1. Filesystem state: clean

  2. Errors behavior: Continue

  3. Filesystem OS type: Linux

  4. Inode count: 51200

  5. Block count: 204800

  6. Reserved block count: 10240

  7. Free blocks: 166642

  8. Free inodes: 51162

  9. First block: 1

  10. Block size: 1024

  11. Fragment size: 1024

  12. Reserved GDT blocks: 256

  13. Blocks per group: 8192

  14. Fragments per group: 8192

  15. Inodes per group: 2048

  16. Inode blocks per group: 256

  17. Flex block group size: 16

  18. Filesystem created: Fri Dec 16 22:02:58
    2016

  19. Last mount time: Sat Jan 7 08:51:29
    2017

  20. Last write time: Sat Jan 7 08:51:29
    2017

  21. Mount count: 28

  22. Maximum mount count: -1

  23. Last checked: Fri Dec 16 22:02:58 2016

  24. Check interval: 0 (<none>)

  1. Lifetime writes: 36 MB

  2. Reserved blocks uid: 0 (user root)

  1. Reserved blocks gid: 0 (group root)
  1. First inode: 11

  2. Inode size: 128

  3. Journal inode: 8

  4. Default directory hash: half_md4

  1. Directory Hash Seed:
    5c41ba8b-25c4-49f3-ab7e-e14d96dca193

  2. Journal backup: inode blocks

  3. Journal features: (none)

  4. Journal size: 4096k

  5. Journal length: 4096

  6. Journal sequence: 0x00000025

  7. Journal start: 0

超级块:记录文件系统的控制与管理信息(Group0以前的信息)。

1、block和inode的个数和大小,及其已用和未用的数量。

2、文件系统的载入时间、最近一次写入数据时间、最近一次执行fsck进行磁盘检查的时间等。

3、有效位:0已载入,1位载入。

组描述:记录本块组从何处开始

块位示图:使用位示图记录哪些块已用哪些块未用。

inode位示图:使用位示图记录inode的使用情况。

inode区:各个inode组成的区域,每个inode都有一个唯一编号。

数据块区:各个block组成的区域,用于存储文件数据。

I/O size (minimum/optimal): 512 bytes / 512 bytes

磁盘分区

添加一块磁盘创建6个分区

1p+1e(5L):/dev/sdb1,/dev/sdb5,/dev/sdb6,/dev/sdb7,dev/sdb8,dev/deb9

分区:设置分区表

格式化:创建文件系统

查看磁盘信息

  1. [root@oldboylinux ~]# fdisk -l
  1.  

  2. Disk /dev/sda: 8589 MB, 8589934592
    bytes

  3. 255 heads, 63 sectors/track, 1044
    cylinders

  4. Units = cylinders of 16065 * 512 =
    8225280 bytes

  5. Sector size (logical/physical): 512
    bytes / 512 bytes

  6. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  7. Disk identifier: 0x000ec58f

  8.  

  9.    Device Boot Start End Blocks Id
    System

  10. /dev/sda1 * 1 26 204800 83 Linux

  1. Partition 1 does not end on cylinder
    boundary.

  2. /dev/sda2 26 91 524288 82 Linux swap /
    Solaris

  3. Partition 2 does not end on cylinder
    boundary.

  4. /dev/sda3 91 1045 7658496 83 Linux

  1.  

  2. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  3. 255 heads, 63 sectors/track, 130
    cylinders

  4. Units = cylinders of 16065 * 512 =
    8225280 bytes

  5. Sector size (logical/physical): 512
    bytes / 512 bytes

  6. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  7. Disk identifier: 0x00000000

 

  1. [root@oldboylinux ~]# fdisk -cu
    /dev/sdb

  2. Device contains neither a valid DOS
    partition table, nor Sun, SGI or OSF disklabel

  3. Building a new DOS disklabel with disk identifier
    0xf7a4dd89.

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

  5. After that, of course, the previous
    content won’t be recoverable.

  6.  

  7. Warning: invalid flag 0x0000 of
    partition table 4 will be corrected by w(rite)

  8.  

  9. Command (m for help): m #查看帮助

  10. Command action

  11.    a toggle a bootable flag

  12.    b edit bsd disklabel

  13.    c toggle the dos compatibility flag

  1.    d delete a partition
    #删除创建的分区

  2.    l list known partition types
    #列出分区类型

  3.    m print this menu #查看帮助

  4.    n add a new partition #创建分区

  5.    o create a new empty DOS partition table

  6.    p print the partition table
    #查看分区

  7.    q quit without saving changes
    #退出,不保存

  8.    s create a new empty Sun disklabel

  9.    t change a partition’s system id
    #更改分区的系统id

  10.    u change display/entry units

  11.    v verify the partition table

  12.    w write table to disk and exit
    #保存,写入分区表

  13.    x extra functionality (experts only)

  1. Command (m for help):

 

  1. Command (m for help): p #查看分区情况

  2.  

  3. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  4. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  5. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System #没有分区信息

  6.  

  7. Command (m for help): n #创建分区

  8. Command action

  9.    e extended

  10.    p primary partition (1-4)

  11. p #选择分区类型

  12. Partition number (1-4): 1
    #选择分区标号

  13. First sector (2048-2097151, default 2048): #扇区

  14. Using default value 2048

  15. Last sector, +sectors or +size{K,M,G}
    (2048-2097151, default 2097151):
    +100M #指定大小

  16.  

  17. Command (m for help): p #查看分区情况

  18.  

  19. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  20. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  21. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System #目前的分区情况

  6. /dev/sdb1 2048 206847 102400 83 Linux

  1.  

  2. Command (m for help):

 

  1. Command (m for help): n #创建分区

  2. Command action

  3.    e extended

  4.    p primary partition (1-4)

  5. e #选择分区类型

  6. Partition number (1-4): 2
    #选择分区标号

  7. First sector (206848-2097151, default 206848):

  8. Using default value 206848

  9. Last sector, +sectors or +size{K,M,G}
    (206848-2097151, default 2097151):
    #默认全部大小

  10. Using default value 2097151

  11.  

  12. Command (m for help): p #查看分区情况

  13.  

  14. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  15. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  16. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System

  6. /dev/sdb1 2048 206847 102400 83 Linux

  1. /dev/sdb2 206848 2097151 945152 5
    Extended #扩展分区

  2.  

  3. Command (m for help):

 

  1. Command (m for help): n

  2. Command action

  3.    l logical (5 or over)

  4.    p primary partition (1-4)

  5. p

  6. Partition number (1-4): 3

  7. No free sectors available #没有扇区

  1.  

  2. Command (m for help):

 

  1. Command (m for help): n

  2. Command action

  3.    l logical (5 or over)

  4.    p primary partition (1-4)

  5. l #逻辑分区

  6. First sector (208896-2097151, default 208896):

  7. Using default value 208896

  8. Last sector, +sectors or +size{K,M,G}
    (208896-2097151, default 2097151):
    +10M #指定大小

  9.  

  10. Command (m for help): p

  11.  

  12. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  13. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  14. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System

  6. /dev/sdb1 2048 206847 102400 83 Linux

  1. /dev/sdb2 206848 2097151 945152 5
    Extended

  2. /dev/sdb5 208896 229375 10240 83 Linux
    #逻辑分区

  3.  

  4. Command (m for help):

 

  1. Command (m for help): n

  2. Command action

  3.    l logical (5 or over)

  4.    p primary partition (1-4)

  5. l

  6. First sector (231424-2097151, default 231424):

  7. Using default value 231424

  8. Last sector, +sectors or +size{K,M,G}
    (231424-2097151, default 2097151):
    +10M

  9.  

  10. Command (m for help): p

  11.  

  12. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  13. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  14. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System

  6. /dev/sdb1 2048 206847 102400 83 Linux

  1. /dev/sdb2 206848 2097151 945152 5
    Extended

  2. /dev/sdb5 208896 229375 10240 83 Linux

  1. /dev/sdb6 231424 251903 10240 83 Linux
  1.  

  2. Command (m for help):

 

  1. Command (m for help): d #删除

  2. Partition number (1-6): 5 #指定标号

  1.  

  2. Command (m for help): p

  3.  

  4. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  5. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  6. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System

  6. /dev/sdb1 2048 206847 102400 83 Linux

  1. /dev/sdb2 206848 2097151 945152 5
    Extended

  2. /dev/sdb5 231424 251903 10240 83 Linux
    #/dev/sdb6变为/dev/sdb5

  3. Command (m for help):

最后分区情况

  1. Command (m for help): p

  2.  

  3. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  4. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  5. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System

  6. /dev/sdb1 2048 206847 102400 83 Linux

  1. /dev/sdb2 206848 2097151 945152 5
    Extended

  2. /dev/sdb5 208896 229375 10240 83 Linux

  1. /dev/sdb6 231424 253951 11264 83 Linux
  1. /dev/sdb7 256000 280575 12288 83 Linux
  1. /dev/sdb8 282624 309247 13312 83 Linux
  1. /dev/sdb9 311296 2097151 892928 83
    Linux

  2.  

  3. Command (m for help):

列出类型

  1. Command (m for help): l

  2.  

  3.  0 Empty 24 NEC DOS 81 Minix / old Lin
    bf Solaris

  4.  1 FAT12 39 Plan 9 82 Linux swap / So
    c1 DRDOS/sec (FAT-

  5.  2 XENIX root 3c PartitionMagic 83
    Linux c4 DRDOS/sec (FAT-

  6.  3 XENIX usr 40 Venix 80286 84 OS/2
    hidden C: c6 DRDOS/sec (FAT-

  7.  4 FAT16 <32M 41 PPC PReP Boot 85
    Linux extended c7 Syrinx

  8.  5 Extended 42 SFS 86 NTFS volume set da Non-FS data

  9.  6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .

  10.  7 HPFS/NTFS 4e QNX4.x 2nd part 88
    Linux plaintext de Dell Utility

  11.  8 AIX 4f QNX4.x 3rd part 8e Linux LVM
    df BootIt

  12.  9 AIX bootable 50 OnTrack DM 93 Amoeba
    e1 DOS access

  13.  a OS/2 Boot Manag 51 OnTrack DM6 Aux
    94 Amoeba BBT e3 DOS R/O

  14.  b W95 FAT32 52 CP/M 9f BSD/OS e4
    SpeedStor

  15.  c W95 FAT32 (LBA) 53 OnTrack DM6 Aux
    a0 IBM Thinkpad hi eb BeOS fs

  16.  e W95 FAT16 (LBA) 54 OnTrackDM6 a5
    FreeBSD ee GPT

  17.  f W95 Ext’d (LBA) 55 EZ-Drive a6
    OpenBSD ef EFI (FAT-12/16/

  18. 10 OPUS 56 Golden Bow a7 NeXTSTEP f0
    Linux/PA-RISC b

  19. 11 Hidden FAT12 5c Priam Edisk a8
    Darwin UFS f1 SpeedStor

  20. 12 Compaq diagnost 61 SpeedStor a9
    NetBSD f4 SpeedStor

  21. 14 Hidden FAT16 <3 63 GNU HURD or
    Sys ab Darwin boot f2 DOS secondary

  22. 16 Hidden FAT16 64 Novell Netware af
    HFS / HFS+ fb VMware VMFS

  23. 17 Hidden HPFS/NTF 65 Novell Netware b7
    BSDI fs fc VMware VMKCORE

  24. 18 AST SmartSleep 70 DiskSecure Mult b8
    BSDI swap fd Linux raid auto

  25. 1b Hidden W95 FAT3 75 PC/IX bb Boot
    Wizard hid fe LANstep

  26. 1c Hidden W95 FAT3 80 Old Minix be
    Solaris boot ff BBT

  27. 1e Hidden W95 FAT1

  28.  

  29. Command (m for help):

 

  1. Command (m for help): t #调整分区类型

  2. Partition number (1-9): 9
    #指定需要调整分区的编号

  3. Hex code (type L to list codes): L
    #列出分区类型

  4.  

  5.  0 Empty 24 NEC DOS 81 Minix / old Lin
    bf Solaris

  6.  1 FAT12 39 Plan 9 82 Linux swap / So
    c1 DRDOS/sec (FAT-

  7.  2 XENIX root 3c PartitionMagic 83
    Linux c4 DRDOS/sec (FAT-

  8.  3 XENIX usr 40 Venix 80286 84 OS/2
    hidden C: c6 DRDOS/sec (FAT-

  9.  4 FAT16 <32M 41 PPC PReP Boot 85
    Linux extended c7 Syrinx

  10.  5 Extended 42 SFS 86 NTFS volume set da Non-FS data

  11.  6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .

  12.  7 HPFS/NTFS 4e QNX4.x 2nd part 88
    Linux plaintext de Dell Utility

  13.  8 AIX 4f QNX4.x 3rd part 8e Linux LVM
    df BootIt

  14.  9 AIX bootable 50 OnTrack DM 93 Amoeba
    e1 DOS access

  15.  a OS/2 Boot Manag 51 OnTrack DM6 Aux
    94 Amoeba BBT e3 DOS R/O

  16.  b W95 FAT32 52 CP/M 9f BSD/OS e4
    SpeedStor

  17.  c W95 FAT32 (LBA) 53 OnTrack DM6 Aux
    a0 IBM Thinkpad hi eb BeOS fs

  18.  e W95 FAT16 (LBA) 54 OnTrackDM6 a5
    FreeBSD ee GPT

  19.  f W95 Ext’d (LBA) 55 EZ-Drive a6
    OpenBSD ef EFI (FAT-12/16/

  20. 10 OPUS 56 Golden Bow a7 NeXTSTEP f0
    Linux/PA-RISC b

  21. 11 Hidden FAT12 5c Priam Edisk a8
    Darwin UFS f1 SpeedStor

  22. 12 Compaq diagnost 61 SpeedStor a9
    NetBSD f4 SpeedStor

  23. 14 Hidden FAT16 <3 63 GNU HURD or
    Sys ab Darwin boot f2 DOS secondary

  24. 16 Hidden FAT16 64 Novell Netware af
    HFS / HFS+ fb VMware VMFS

  25. 17 Hidden HPFS/NTF 65 Novell Netware b7
    BSDI fs fc VMware VMKCORE

  26. 18 AST SmartSleep 70 DiskSecure Mult b8
    BSDI swap fd Linux raid auto

  27. 1b Hidden W95 FAT3 75 PC/IX bb Boot
    Wizard hid fe LANstep

  28. 1c Hidden W95 FAT3 80 Old Minix be
    Solaris boot ff BBT

  29. 1e Hidden W95 FAT1

  30. Hex code (type L to list codes): 8e
    #指定的分区类型

  31. Changed system type of partition 9 to
    8e (Linux LVM)

  32.  

  33. Command (m for help): p #查看分区情况

  34.  

  35. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  36. 255 heads, 63 sectors/track, 130
    cylinders, total 2097152 sectors

  37. Units = sectors of 1 * 512 = 512 bytes

  1. Sector size (logical/physical): 512
    bytes / 512 bytes

  2. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  3. Disk identifier: 0xf7a4dd89

  4.  

  5.    Device Boot Start End Blocks Id
    System

  6. /dev/sdb1 2048 206847 102400 83 Linux

  1. /dev/sdb2 206848 2097151 945152 5
    Extended

  2. /dev/sdb5 208896 229375 10240 83 Linux

  1. /dev/sdb6 231424 253951 11264 83 Linux
  1. /dev/sdb7 256000 280575 12288 83 Linux
  1. /dev/sdb8 282624 309247 13312 83 Linux
  1. /dev/sdb9 311296 2097151 892928 8e
    Linux LVM #分区类型已经调整

  2.  

  3. Command (m for help): w #写入分区表

  4. The partition table has been altered!

  1.  

  2. Calling ioctl() to re-read partition
    table.

  3. Syncing disks.

通知linux分区表的变化(否则需要重启系统才能看到变化)

  1. [root@oldboylinux ~]# partprobe
    /dev/sdb

查看结果

  1. [root@oldboylinux ~]# fdisk -l
  1.  

  2. Disk /dev/sda: 8589 MB, 8589934592
    bytes

  3. 255 heads, 63 sectors/track, 1044
    cylinders

  4. Units = cylinders of 16065 * 512 =
    8225280 bytes

  5. Sector size (logical/physical): 512
    bytes / 512 bytes

  6. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  7. Disk identifier: 0x000ec58f

  8.  

  9.    Device Boot Start End Blocks Id
    System

  10. /dev/sda1 * 1 26 204800 83 Linux

  1. Partition 1 does not end on cylinder
    boundary.

  2. /dev/sda2 26 91 524288 82 Linux swap /
    Solaris

  3. Partition 2 does not end on cylinder
    boundary.

  4. /dev/sda3 91 1045 7658496 83 Linux

  1.  

  2. Disk /dev/sdb: 1073 MB, 1073741824
    bytes

  3. 255 heads, 63 sectors/track, 130
    cylinders

  4. Units = cylinders of 16065 * 512 =
    8225280 bytes

  5. Sector size (logical/physical): 512
    bytes / 512 bytes

  6. I/O size (minimum/optimal): 512 bytes /
    512 bytes

  7. Disk identifier: 0xf7a4dd89

  8.  

  9.    Device Boot Start End Blocks Id
    System

  10. /dev/sdb1 1 13 102400 83 Linux

  11. Partition 1 does not end on cylinder
    boundary.

  12. /dev/sdb2 13 131 945152 5 Extended

  1. Partition 2 does not end on cylinder
    boundary.

  2. /dev/sdb5 14 15 10240 83 Linux

  3. /dev/sdb6 15 16 11264 83 Linux

  4. /dev/sdb7 16 18 12288 83 Linux

  5. /dev/sdb8 18 20 13312 83 Linux

  6. /dev/sdb9 20 131 892928 8e Linux LVM

Disk identifier: 0x00093fdc

文件系统的简单操作

磁盘与目录的容量:

df:列出文件系统的整体磁盘使用量。

du:评估文件系统的磁盘使用量(常用于评估目录所占容量)。

1、将容量结果以易读的容量格式显示出来:df -h。

2、将/etc下面的可用的磁盘容量以易读的容量格式显示:df -h /etc。

3、将目前各个分区当做可用的inode数量列出:df -ih。

4、检查根目录下面每个目录所占用的容量:du -sm/*。

连接文件:ln

1、hard
link(硬链接实际链接):只是在某个目录下新建一条文件名链接到某inode号码的关联记录而已。

2、symbolic
link(符号链接,快捷方式):再创建一个独立的文件,而这个文件会让数据的读取指向它链接的那个文件夹的文件名。

3、将/etc/passwd复制到/tmp下面,并且查看inode与block

磁盘格式化:mkfs -t ext3 /dev/sda6

磁盘检查:fsck、badblocks

fsck -C -f -t ext3 /dev/sda6,卸载状态检查。

badblocks -sv /dev/sda6

磁盘挂载与卸载

1、挂载ext2、ext3文件系统

mount /dev/sda6 /mnt

df –h

2、挂载cd或dvd光盘

mkdir /media/cdrom

mount -t iso9660 /dev/cdrom /media/cdrom #-t iso9660这个是光盘的格式

mount /dev/cdrom /media/cdrom #系统自己去测试挂载

df

3、格式化与挂载软盘

mkfs -t vfat /dev/fd0

mkdir /media/floppy

mount -t fat /dev/fd0 /media/floppy

df

4、挂载U盘

mkdir /tmp/flash

mount -t vfat -o iocharset=cp950 /dev/sda1 /tmp/flash

df

5、文件卸载umount

umount /dev/sda6

umount /media/cdrom

umount /tmp/flash

umount /dev/fd0

umount /tmp/home

强制卸载:umount –lf 挂载点

强制卸载nfs案例:

umount:/mnt:device is busy解决办法

当无法卸载nfs挂载目录时,原因及解决办法:

1、可能当前目录就是挂载的nfs目录(/mnt)

解决办法:退出挂载的目录/mnt,再执行卸载。

2、比如nfs server挂了,nfs client会出问题(df -h窗会死掉口)

最好的强制卸载方法umount -lf /mnt。

#设备名 是否是启动设备 开始柱面    结果柱面 大小1K为单位 分区类型标识
分区的系统类型

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1        1913    15360000   83  Linux

/dev/sda2            1913        1978      524288   82  Linux swap /
Solaris

 

Disk /dev/sdb: 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    #硬盘的IO情况

Disk identifier: 0x00000000                        ##磁盘的标识

 

Disk /dev/sdb doesn’t contain a valid partition table

这里面会显示磁盘的空间大小以及磁头、扇区、柱面的数量。如果没有分区的磁盘,他会给有相应的提示“Disk
/dev/sdb doesn’t contain a valid partition
table”。这就是我们要对其分区的磁盘sdb。

 

[[email protected]
~]# fdisk /dev/sdb

显示fdisk的帮助信息

 

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    #删除一个分区

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

Command action

e   extended    #扩展分区

p   primary partition (1-4) #主分区

由于硬盘的设计原因,我们的主分区表最多是4个。至于为什么会是这样,请大家参考:带您深入了解硬盘分区表

 

p

Partition number (1-4): 1            #分区号

First cylinder (1-2610, default 1): #柱面默认是1,直接回车

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):+1G    
#设置结束柱面或者用分区的大小(+K、M、G)来让系统自动计算结束柱面
然后回车

列出分区信息

 

Command (m for help): p        #列出刚才的分区信息

 

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

 

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (133-2610, default 133):

Using default value 133

Last cylinder, +cylinders or +size{K,M,G} (133-2610, default 2610): +50
#在原来的基础上加上50个柱面

 

Command (m for help): p

 

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

/dev/sdb2             133         183      409657+  83  Linux

新增加扩展分区

 

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

e        #我们来分扩展分区

Partition number (1-4): 3       
#扩展分区的分区号是3,当然也可以是4,但不可能是大于4的。

First cylinder (184-2610, default 184): #扩展分区的起始柱面

Using default value 184

Last cylinder, +cylinders or +size{K,M,G} (184-2610, default 2610):
#扩展分区的结束柱面,默认就是全部划分给扩展分区了

Using default value 2610

 

Command (m for help): p

 

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

/dev/sdb2             133         183      409657+  83  Linux

/dev/sdb3             184        2610    19494877+   5  Extended   
#注意这里的类型已经和上面的不一样了

增加逻辑分区

 

Command (m for help): n

Command action

l   logical (5 or over)           
#这时候就和上面的不一样了,因为在扩展分区中再分的话,就是逻辑分区了,必需是5以上

p   primary partition (1-4)   
#因为我们还可以分一个主分区出来,所以这里会显示这样的信息。当然,因为我们已经把硬盘所有我空间全分给了扩展分区,所以,我们分不出那个主分区了。

l

First cylinder (184-2610, default 184):

Using default value 184

Last cylinder, +cylinders or +size{K,M,G} (184-2610, default 2610): +2G

 

Command (m for help): P

 

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

/dev/sdb2             133         183      409657+  83  Linux

/dev/sdb3             184        2610    19494877+   5  Extended

/dev/sdb5             184         445     2104483+  83  Linux       
#这个分区就是逻辑分区了,我是怎么看出来的呢?关键是你要注意两点:1是分区号。这里是sdb5。2是分区的开始柱面是从184开始的,而我们的扩展分区也是从184开始的,可以肯定是在扩展分区里面分出来的分区,那当然是逻辑分区啊

增加SWAP分区

下面我们再分一个512M的分区出来,为了我们后面的课程讲解。这个分区我们后面会用他当作SWAP分区。

 

Command (m for help): n

Command action

l   logical (5 or over)

p   primary partition (1-4)

l

First cylinder (446-2610, default 446):

Using default value 446

Last cylinder, +cylinders or +size{K,M,G} (446-2610, default 2610):
+512M

 

Command (m for help): p

 

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

/dev/sdb2             133         183      409657+  83  Linux

/dev/sdb3             184        2610    19494877+   5  Extended

/dev/sdb5             184         445     2104483+  83  Linux

/dev/sdb6             446         511      530113+  83  Linux

我们下面来个错误的演示

 

Command (m for help): n

Command action

l   logical (5 or over)

p   primary partition (1-4)

p

Selected partition 4

No free sectors available

因为已经没有剩余的扇区了,所以肯定是分不了主分区了。

 

转换分区类型

 

Command (m for help): l
#这个是L的小写,不是1啊!就是列出分区的类型,因为很多,所以我就找几个出来

82  Linux swap /    #这个就是SWAP分区代码了

83  Linux             #这个就是Linux系统的分区代码了

8e  Linux LVM         #LVM分区的代码

 

Command (m for help): t        #转换分区类型

Partition number (1-6): 6    #选择转换的分区号

Hex code (type L to list codes): 82    #转换成的类型

Changed system type of partition 6 to 82 (Linux swap / Solaris)   
#提示内容

 

Command (m for help): p

 

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

/dev/sdb2             133         183      409657+  83  Linux

/dev/sdb3             184        2610    19494877+   5  Extended

/dev/sdb5             184         445     2104483+  83  Linux

/dev/sdb6             446         511      530113+  82  Linux swap /
Solaris

我们就先分这么多出来,当然这个磁盘还有很多空间,因为这只是演示,所以无需全部来分完。下面就是重要一个环节,保存我们分好的分区表,如果不保存,那么我们刚才的功劳,等于没有做。

 

保存分区表

 

Command (m for help): w    #保存分区表

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

注意,如果出现

 

The kernel still uses the old table.

The new table will be used at the next reboot.

这样的提示的话,他的意思就是让我们重新启动系统,好让内核认出我们新的分区表,为了不让系统重新启动,我们可以用

 

partprobe

这个命令,来让内核重新获得一次分区表的信息。

这时候我们再用

 

[[email protected]
~]# fdisk -l

就可以看到我们分出来的分区内容了,我只取有用的内容

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

/dev/sdb2             133         183      409657+  83  Linux

/dev/sdb3             184        2610    19494877+   5  Extended

/dev/sdb5             184         445     2104483+  83  Linux

/dev/sdb6             446         511      530113+  82  Linux swap /
Solaris

如果说,你在分区的时候,哪里出现了错误,或者是不想那么操作的话,按q退出,然后重新来过即可。千万在确保正确后再用w保存哦,如果你分错了硬盘的话,那么数据就OVER了!!

这个分区其实很简单,关键是多操作几次,熟练后就很容易了!

 

注意:SATA 硬盘最多能够支持到15个分区,IDE
则可以支持到63个。如果超过了这个限制,那么你的硬盘多余的空间也就浪费。

 

第二部分:格式化

分区完,我们的这块硬盘还是不能使用的,需要对分区进行格式化,让其变成系统认识的分区。关于格式化的原理,大家可以参考:Linux分区与格式化及文件系统优化这里我就不多说了,下面进行格式化的操作。

 

ca88yzc 6下面我们以第一个分区为列来讲解如何对分区进行格式化

 

 

先查看我们要进行格式化的磁盘分区情况

[[email protected]
~]# fdisk -l /dev/sdb

 

Disk /dev/sdb: 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: 0xd6737273

 

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         132     1060258+  83  Linux

/dev/sdb2             133         183      409657+  83  Linux

/dev/sdb3             184        2610    19494877+   5  Extended

/dev/sdb5             184         445     2104483+  83  Linux

/dev/sdb6             446         511      530113+  82  Linux swap /
Solaris

再来认识一下格式化的工具

mkfs [-t 文件系统格式] 设备名

或者是

mkfs.文件系统格式 设备名

用mkfs[tab][tab]就可以显示出系统所有支持的格式了

这个里面有很多的参数,可以用–hlep来查看

 

[[email protected]
~]# mkfs.ext4 –hlep

mkfs.ext4: invalid option — ‘-‘

Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-f
fragment-size]

[-i bytes-per-inode] [-I inode-size] [-J journal-options]

[-G meta group size] [-N number-of-inodes]

[-m reserved-blocks-percentage] [-o creator-os]

[-g blocks-per-group] [-L volume-label] [-M
last-mounted-directory]

[-O feature[,…]] [-r fs-revision] [-E extended-option[,…]]

[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]

-b 指定block的大小1024 2048 4096 默认是4096

-I 指定inode的大小(min 128/max 4096) 默认是256

-i 指定多少个字节分配一个inode

-L 指定卷标

 

分区演示

[[email protected]
~]# mkfs.ext4 -L opsers_tech -b 2048 -i 10240 /dev/sdb1

mke2fs 1.41.12 (17-May-2010)

Filesystem label=opsers_tech

OS type: Linux

Block size=2048 (log=1)

Fragment size=2048 (log=1)

Stride=0 blocks, Stripe width=0 blocks

106128 inodes, 530128 blocks

26506 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=537919488

33 block groups

16384 blocks per group, 16384 fragments per group

3216 inodes per group

Superblock backups stored on blocks:

16384, 49152, 81920, 114688, 147456, 409600, 442368

 

Writing inode tables: done

Creating journal (16384 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 32 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

因为我的分区很小,所以格式化是很快的,如果分区很大的话,这个也是要消耗一些时间的。大家可以用默认格式化与自定义格式化来进行对比。

希望大家和其他三篇文章结合起来看,我相信这三篇文章,应该能彻底的让你了解并掌握磁盘的分区、格式化原理与优化了。

 

一天一点学习Linux之认识文件系统:

 

一天一点学习Linux之文件系统属性更改相关操作:

 

Linux分区与格式化及文件系统优化:

 

注意:如果你遇到了这样的提示

/dev/sdx:No  such  file or directory     //找不到该分区,无法格式化

那么和我们上面的是一样的原因,就是内核无法读到新的分区表。解决方法有两个

1.重启系统。系统重新启动的时候会重新加载分区表,新的分区自然也就生效了。

2.为了节省时间或者系统环境不允许重启,使用partprobe命令,在不重启情况下重新加载分区表。

 

[[email protected]
~]# partprobe               //重新加载所有硬盘的分区表

[[email protected]
~]# partprobe   /dev/sdb      //只重新加载第一块硬盘的分区表

如果没有那个命令的话,那就安装

rpm -q parted

为什么要把硬盘分区?
1、维护相关:如可以把相同类型,有共同安全需要的内容,放到不同的分区中,这样方便了维护。
2、效率因…

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注