硬盤分區
識別硬盤-->規劃分區-->格式化-->掛載-->寫入/讀寫數據
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: <not available>
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性能更強點