硬盘分区

识别硬盘-->规划分区-->格式化-->挂载-->写入/读写数据


MBR    Master Boot Record

主引导记录模式,也称为MSDOS模式

硬盘的第一个扇区(512字节)作为MBR扇区,用来记录引导程序和分区表

分区表记录只有64个字节,其中存储硬盘上每个分区的信息,一个分区记录需要16字节

此模式支持最多4个主分区、最大容量约2.2TB


GPT    GUID Partition Table

全局唯一标识分区表

突破固定大小64字节表限制

最多可支持128个主分区,最大支持18EB磁盘

    1EB=1024PB=1024 X 1024TB


磁盘分区工具

fdisk    只支持MSDOS分区布局

fdisk -l /dev/sda    查看分区表

fdisk /dev/sda    对/dev/sda进行分区


parted    支持MSDOS\GPT分区布局

parted /dev/sda print    查看分区表

parted /dev/sda    对/dev/sda进行分区


parted

-help    获取帮助

-mktable msdos|gpt    建立指定模式分区表

-mkpart primary 文件系统类型 start end

        批定大小或百分比作为起始、结束位置

-print    查看分区表

-rm 序号    删除指定的分区

-quit    退出交互环境


当硬盘分区表更改以后

需要将分区表变化通知内核


partx -a /dev/sda

partprobe /dev/sda

reboot


fdisk /dev/sdb


Command (m for help): h

h: unknown command

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)


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


   Device Boot      Start         End      Blocks   Id  System


Command (m for help): n

Command action

   e   extended    扩展分区

   p   primary partition (1-4) 主分区

p

Partition number (1-4): 1

First cylinder (1-2610, default 1): 

Using default value 1

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


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


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1           1        8001   83  Linux


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.



parted /dev/sdb


[root@localhost ~]# parted /dev/sda p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sda: 21.5GB

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

Partition Table: msdos    分区方式为MBR


Number  Start   End     Size    Type     File system     标志

 1      1049kB  211MB   210MB   primary  ext4            启动

 2      211MB   2308MB  2097MB  primary  linux-swap(v1)

 3      2308MB  21.5GB  19.2GB  primary  ext4


[root@localhost ~]# parted /dev/sdb p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: msdos


Number  Start  End     Size    Type     File system  标志

 1      512B   1000MB  1000MB  primary


[root@localhost ~]# parted /dev/sdb mkpart p ext4 1G 3G

信息: You may need to update /etc/fstab.                                  


[root@localhost ~]# parted /dev/sdb p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: msdos


Number  Start   End     Size    Type     File system  标志

 1      512B    1000MB  1000MB  primary

 2      1000MB  3000MB  2000MB  primary


(parted) mktable 

align-check  mkfs         mktable      quit         select       version

check        mklabel      move         rescue       set          检查

cp           mkpart       name         resize       toggle       

help         mkpartfs     print        rm           unit         

(parted) mktable 

新的磁盘标签类型?                                                        

aix    amiga  bsd    dvh    gpt    loop   mac    msdos  pc98   sun    

新的磁盘标签类型? 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) p                                                                

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 /dev/sdb mktable gpt 将sdb分区方式更改为gpt

注:转换GPT或MSDOS都会丢失数据


检查此分区是否支持ACL、有多少个I节点

[root@localhost ~]# tune2fs -l /dev/sda1 |grep acl    支持ACL

Default mount options:    user_xattr acl

[root@localhost ~]# tune2fs -l /dev/sdb1 |grep acl    没有输出信息,不支持

[root@localhost ~]# 


[root@localhost ~]# tune2fs -l /dev/sdb1 |grep "Inode count"

Inode count:              61056


如何需要支持ACL

在/etc/fstab

/dev/sdb1       /test   ext4 defaults,acl 0 0

加一个ACL


格式化工具

mkfs    make filesystem

文件系统ext4

mkfs -t ext4 /dev/sda?

或mkfs.ext4 /dev/sda?


文件系统FAT32

mkfs -t vfat -F 32 /dev/sda?

或mkfs.vfat -F 32 /dev/sda?


格式化交换分区

mkswap 分区设备


记用交换分区

swapon 分区设备


查看交换分区

swapon -s


关闭交换分区

swapoff 分区设备


利用文件创建SWAP空间

dd if=源设备 of=目标设备 bs=块大小 count=块数


创建500M文件

[root@localhost mnt]# dd if=/dev/zero of=/opt/swap.1 bs=1M count=500

记录了500+0 的读入

记录了500+0 的写出

524288000字节(524 MB)已复制,16.1705 秒,32.4 MB/秒


-f表示强制执行(force)

[root@localhost mnt]# mkswap -f /opt/swap.1 

Setting up swapspace version 1, size = 511996 KiB

no label, UUID=92324e76-a1d5-4b5a-9160-11b384ddd5e1


[root@localhost mnt]# swapon -s

FilenameTypeSizeUsedPriority

/dev/sda2                               partition20479920-1

[root@localhost mnt]# swapon /opt/swap.1 

[root@localhost mnt]# swapon -s

FilenameTypeSizeUsedPriority

/dev/sda2                               partition20479920-1

/opt/swap.1                             file5119920-2

[root@localhost mnt]# swapoff /opt/swap.1 

[root@localhost mnt]# swapon -s

FilenameTypeSizeUsedPriority

/dev/sda2                               partition20479920-1


EXT分区命名

e2label命令

e2label 设备名 ["卷标名"]

e2label /dev/sdb1 "test1"


[root@localhost ~]# e2label /dev/sdb1 没有则显示空


[root@localhost ~]# e2label /dev/sdb1 "test1"

[root@localhost ~]# e2label /dev/sdb1

test1

[root@localhost ~]# e2label /dev/sdb1 ""    删除卷标名

[root@localhost ~]# e2label /dev/sdb1 没有则显示空


查看设备的UUID

blkid命令    Block Identity

blkid 设备名

[root@localhost ~]# blkid 

/dev/sda1: UUID="f8364c60-0d36-4825-938a-596c4a36caed" TYPE="ext4" 

/dev/sda2: UUID="362e751f-73c4-4fd6-9eff-c2dbe185d92e" TYPE="swap" 

/dev/sda3: UUID="659f965c-49e9-4a78-b514-cc6d40734619" TYPE="ext4" 

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" 

[root@localhost ~]# blkid /dev/sdb1

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" 


[root@localhost ~]# blkid /dev/sdb1

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" 

[root@localhost ~]# e2label /dev/sdb1 "test1"

[root@localhost ~]# !b

blkid /dev/sdb1

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" LABEL="test1" 


查看EXT分区属性

tune2fs命令

tune2fs -l 设备名


[root@localhost ~]# tune2fs -l /dev/sdb1

tune2fs 1.41.12 (17-May-2010)

Filesystem volume name:   test1

Last mounted on:          

Filesystem UUID:          c01c3b74-fac2-43ab-b3a6-98923786740b

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash 

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              2000

Block count:              8000

Reserved block count:     400

Free blocks:              6676

Free inodes:              1989

First block:              1

Block size:               1024

Fragment size:            1024

Reserved GDT blocks:      31

Blocks per group:         8192

Fragments per group:      8192

Inodes per group:         2000

Inode blocks per group:   250

Flex block group size:    16

Filesystem created:       Tue Aug  9 21:49:41 2016

Last mount time:          n/a

Last write time:          Tue Aug  9 21:53:01 2016

Mount count:              0

Maximum mount count:      36

Last checked:             Tue Aug  9 21:49:41 2016

Check interval:           15552000 (6 months)

Next check after:         Sun Feb  5 21:49:41 2017

Lifetime writes:          1401 kB

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:          128

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      909a22e7-58cb-488f-bded-c7c5b7704015

Journal backup:           inode blocks


挂载文件系统

mount命令

mount [选项] 设备名 挂载点

-a:加载所有fstab已配置的文件系统

-t:指定文件系统类型

-o:指定挂载参数————————————————————————

        ro/rw:只读/读写

        acl/noacl:启用/禁用ACL

        exec/noexec:打开/关闭执行权

        suid/nosuid:启用/禁用suid和sgid

        remount:重新挂载

        defaults:rw,suid,dev,exec,auto,nouser,async

        ————————————————————————

-L:通过卷标名挂载设备

-U:通过UUID挂载设备


ISO镜像文件挂载到指定位置

mount -o loop linux.iso /mnt/cdrom


df命令 disk usage of file system

df 选项 文件

-h 使用容量单位

-T 列出文件系统系统


[root@localhost mnt]# df -h

文件系统      容量  已用  可用 已用%% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

tmpfs                 112M     0  112M   0% /dev/shm

/dev/sda1             194M   29M  156M  16% /boot

[root@localhost mnt]# df -T

文件系统    类型         1K-块      已用      可用 已用% 挂载点

/dev/sda3     ext4    18423556   3658768  13828904  21% /

tmpfs        tmpfs      114220         0    114220   0% /dev/shm

/dev/sda1     ext4      198337     28929    159168  16% /boot


卸载文件系统

umount

umount 设备名|挂载点

-a卸载所有已挂载的非伪文件系统


开机自动挂载配置文件

/etc/fstab


#

# /etc/fstab

# Created by anaconda on Tue Aug  9 00:02:13 2016

#

# 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=659f965c-49e9-4a78-b514-cc6d40734619 /                       ext4    defaults

1 1

UUID=f8364c60-0d36-4825-938a-596c4a36caed /boot                   ext4    defaults

1 2

UUID=362e751f-73c4-4fd6-9eff-c2dbe185d92e 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

~                                                                              

备份标记和检测顺序为0则不需要

以空格或制表位分隔6列

设备文件    挂载点    文件系统类型    挂载参数    备份标记    检测顺序


触发挂载

autofs服务

按需访问 机制

只要访问挂载点就会触发响应,自动挂载指定设备

闲置超过时限(默认为5分钟),会自动卸载


主配置文件/etc/auto.master

监控点目录    挂载配置文件的路径

挂载配置文件/etc/auto.1 文件名可以自己定义

触发点子目录    挂载参数    :设备名


[root@localhost /]# grep -v '^#' /etc/auto.master ;echo ------------;grep -v '^#' /etc/auto.1

/misc/etc/auto.misc

/net-hosts

+auto.master


/test /etc/auto.1

test    -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

表示访问 /test/test    才能触发


[root@localhost /]# ll /test/

总用量 0


[root@localhost /]# /etc/init.d/autofs start

正在启动 automount:automount: program is already running.

                                                           [确定]



[root@localhost ~]# mount |tail -1

/dev/sr0 on /test/test type iso9660 (ro,nosuid,nodev)



LVM逻辑卷 Logical Volume Manager

  • pvcreate 设备名...

  • vgcreate 卷组名 物理卷...

  • lvcreate -L 大小 -n 逻辑卷名 卷组名


先PV----在VG----在LV----格式化LV---挂载

PV     Physical Volume 物理卷

    物理分区,或整个物理磁盘

    由PE    Physical Extent,基本单元    组成

VG    Volume Group 卷组

     一个或多个物理卷组的逻辑整体

LV    Logical Volume 逻辑卷

    从卷组中分割出的地块逻辑存储空间

    可通过格式化建立文件系统


[root@localhost /]# parted /dev/sdb p

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      17.4kB  1000MB  1000MB  ext4


# parted /dev/sdb set 1 lvm on    set:添加标志,1分区编号,lvm标志,on开启

信息: You may need to update /etc/fstab.                                  


[root@localhost /]# parted /dev/sdb p

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      17.4kB  1000MB  1000MB  ext4               lvm


[root@localhost /]# parted /dev/sdb set 1 lvm off

信息: You may need to update /etc/fstab.                                  


[root@localhost /]# parted /dev/sdb p

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      17.4kB  1000MB  1000MB  ext4


Number  Start   End     Size    File system  Name  标志

 1      17.4kB  1000MB  1000MB  ext4               lvm

 2      1000MB  3000MB  2000MB  ext4         name  lvm

 3      3000MB  5000MB  2000MB               name  lvm    文件类型没有,因为没有格式化


[root@localhost /]# pvs

[root@localhost /]# pvscan 

  No matching physical volumes found

[root@localhost /]# ll /dev/sdb*

brw-rw----. 1 root disk 8, 16 8月  10 00:19 /dev/sdb

brw-rw----. 1 root disk 8, 17 8月  10 00:19 /dev/sdb1

brw-rw----. 1 root disk 8, 18 8月  10 00:19 /dev/sdb2

brw-rw----. 1 root disk 8, 19 8月  10 00:18 /dev/sdb3


忘记可以man下查下命令格式

man pvcreate


创建pv

[root@localhost /]# pvcreate /dev/sdb[1-3]

  Physical volume "/dev/sdb1" successfully created

  Physical volume "/dev/sdb2" successfully created

  Physical volume "/dev/sdb3" successfully created


[root@localhost /]# pvs

  PV         VG    Fmt  Attr PSize   PFree  

  /dev/sdb1  my_vg lvm2 a--  952.00m 952.00m

  /dev/sdb2  my_vg lvm2 a--    1.86g   1.86g

  /dev/sdb3  my_vg lvm2 a--    1.86g   1.86g


创建vg

[root@localhost /]# vgscan

  Reading all physical volumes.  This may take a while...

  No volume groups found


[root@localhost /]# vgcreate my-vg /dev/sdb1 

  Volume group "my-vg" successfully created


[root@localhost /]# vgs

  VG    #PV #LV #SN Attr   VSize   VFree  

  my-vg   1   0   0 wz--n- 952.00m 952.00m


创建lv

[root@localhost /]# lvcreate -L 100M -n my-lv my-vg

  Logical volume "my-lv" created

[root@localhost /]# lvs

  LV    VG    Attr      LSize   Pool Origin Data%  Move Log Cpy%Sync Convert

  my-lv my-vg -wi-a---- 100.00m   


[root@localhost /]# ll /dev/my-vg/my-lv 

lrwxrwxrwx. 1 root root 7 8月  10 00:31 /dev/my-vg/my-lv -> ../dm-0


扩展逻辑卷容量

[root@localhost /]# df -h

文件系统      容量  已用  可用 已用%% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                       97M  5.6M   87M   7% /test



[root@localhost /]# lvextend -L +500 /dev/my-vg/my-lv 

  Extending logical volume my-lv to 600.00 MiB

  Logical volume my-lv successfully resized

[root@localhost /]# lvs

  LV    VG    Attr      LSize   Pool Origin Data%  Move Log Cpy%Sync Convert

  my-lv my-vg -wi-ao--- 600.00m                                             

[root@localhost /]# df -h

文件系统      容量  已用  可用 已用%% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                       97M  5.6M   87M   7% /test

[root@localhost /]# 


lv扩容支持线上操作,但是扩展完成后通知内核新卷大小

lv扩容要看vg的空间是否满足,不满足时扩容vg

vg扩容不够扩展pv

pv不够加硬盘


[root@localhost /]# resize2fs /dev/dm-0

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/dm-0 is mounted on /test; on-line resizing required

old desc_blocks = 1, new_desc_blocks = 3

Performing an on-line resize of /dev/dm-0 to 614400 (1k) blocks.

The filesystem on /dev/dm-0 is now 614400 blocks long.


文件系统    类型      容量  已用  可用 已用%% 挂载点

/dev/sda3     ext4     18G  3.5G   14G  21% /

/dev/sda1     ext4    194M   29M  156M  16% /boot

tmpfs        tmpfs    112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

              ext4    582M  6.3M  546M   2% /test


vgcreate -s  pe大小 卷组名 物理卷

lvcreate -l pe个数 -n 逻辑名 卷组名

lvextend -L +大小 /dev/卷组名/逻辑卷名  推荐这种

还有一种lvextend -L 直接大小(等于之前的大小加上你要扩容的大小的总和) /dev/卷组名/逻辑卷名


PE大小默认是4M

[root@localhost /]# pvdisplay /dev/sdb1|grep 'PE'

  PE Size               4.00 MiB

  Total PE              238

  Free PE               0

  Allocated PE          238


vg扩容

[root@localhost /]# vgextend my-vg /dev/sdb2 /dev/sdb3

  Volume group "my-vg" successfully extended

[root@localhost /]# vgs

  VG    #PV #LV #SN Attr   VSize VFree

  my-vg   3   1   0 wz--n- 4.65g 4.06g


[root@localhost /]# lvextend -L +2G /dev/my-vg/my-lv 

  Extending logical volume my-lv to 2.59 GiB

  Logical volume my-lv successfully resized

[root@localhost /]# lvs

  LV    VG    Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert

  my-lv my-vg -wi-ao--- 2.59g   


[root@localhost /]# df -h

文件系统      容量  已用  可用 已用%% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                      582M  6.3M  546M   2% /test

[root@localhost /]# fs

fsadm         fsck.cramfs   fsck.ext3     fsck.ext4dev  fsck.vfat     fstab-decode

fsck          fsck.ext2     fsck.ext4     fsck.msdos    fsfreeze      fstrim

[root@localhost /]# resize2fs  /dev/my-vg/my-lv 

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/my-vg/my-lv is mounted on /test; on-line resizing required

old desc_blocks = 3, new_desc_blocks = 11

Performing an on-line resize of /dev/my-vg/my-lv to 2711552 (1k) blocks.

The filesystem on /dev/my-vg/my-lv is now 2711552 blocks long.


[root@localhost /]# df -h

文件系统      容量  已用  可用 已用%% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                      2.6G  6.9M  2.4G   1% /test

[root@localhost /]# 


RAID

廉价冗余磁盘阵列

Redundant Arrays of Inexpensive Disks

有软RAID和硬RAID

不同的RAID级别功能与特性也不同


RAID 0 条带模式

将一个文档分散存储到不同的磁盘

并行写入以提高效率


RAID 1 镜像模式

一个文档复制成多份,分别写入不同的磁盘

多份拷贝提高可靠性,效率无提升

数据有可靠性


RAID 5 高性价比模式

相当于RAID 0和RAID 1

到少一块磁盘空间作为冗余


RAID 0+1/RAID 1+0

整合RAID 0、1优势

并行存取提高效率、镜像写入提高数据可靠性

RAID 0+1与RAID 1+0相比 RAID 1+0性能更强点

day2_第1张图片