硬盘分区
识别硬盘-->规划分区-->格式化-->挂载-->写入/读写数据
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性能更强点