一、磁盤管理總體分類
1)磁盤結構
2)分區類型
3)管理分區
4)管理檔案系統
5)挂載裝置
6)管理虛拟記憶體
………………………………………………………………………………………………………………………
重要分類子產品詳解
1、磁盤常用術語
head:磁頭 track:磁道 sector:扇區 cylinder:柱面
2、分區種類
1)主引導記錄(MBR)
MBR: Master Boot Record,1982年,使用32位表示扇區數,分區不超過2T如何分區:按柱面0磁道0扇區:512bytes 446bytes: boot loader 64bytes:分區表 16bytes: 辨別一個分區 2bytes: 55AA 4個主分區;3主分區+1擴充(N個邏輯分區)
2)GPT
GPT:GUID patition table (GUID分區表) 支援128個分區,使用64位,支 持8Z( 512Byte/block )64Z ( 4096Byte/block)使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭 和尾兩份,并有CRC校驗位UEFI (統一擴充固件接口)硬體支援GPT
3、常用分區管理工具
lsblk指令:
lsblk - list block devices
示範:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<code>[root@centos6 ~]</code><code># lsblk</code>
<code>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT</code>
<code>sr0 11:0 1 3.7G 0 rom</code>
<code>sda 8:0 0 120G 0 disk</code>
<code>├─sda1 8:1 0 200M 0 part </code><code>/boot</code>
<code>├─sda2 8:2 0 80G 0 part /</code>
<code>├─sda3 8:3 0 20G 0 part </code><code>/testdir</code>
<code>├─sda4 8:4 0 1K 0 part</code>
<code>├─sda5 8:5 0 4G 0 part [SWAP]</code>
<code>└─sda6 8:6 0 5G 0 part</code>
<code>sdb 8:16 0 120G 0 disk</code>
<code>sdc 8:32 0 20G 0 disk</code>
<code>sdd 8:48 0 20G 0 disk</code>
<code>sde 8:64 0 20G 0 disk</code>
<code>[root@centos6 ~]</code><code>#</code>
fdisk指令:
fdisk - Partition table manipulator for Linux
fdisk -cu device fdisk device
常用子指令:
d delete a partition #删除分區表
l list known partition types #列出分區類型
m print this menu #列印幫助資訊
n add a new partition #添加一個新的分區
p print the partition table #列印分區表
q quit without saving changes #不儲存退出
t change a partition's system id #改變一個分區的系統ID
w write table to disk and exit #将分區表寫入系統
partx/partprobe指令:通知核心重新讀取硬碟分區表資訊
partx -a /dev/device 例如:partx -a /dev/sda1
kpartx -a /dev/device -f:force
删除分區:
partx -d --nr # /dev/device #号表示删除的第幾塊分區
partx -d --nr 7 /dev/sda
CentOS5.x CentOS7.x使用:partprobe指令即可
檢視核心是否已經識别新的分區:cat /proc/partitations
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<code>[root@centos6 ~]</code><code># fdisk -l /dev/sda</code>
<code>Disk </code><code>/dev/sda</code><code>: 128.8 GB, 128849018880 bytes</code>
<code>255 heads, 63 sectors</code><code>/track</code><code>, 15665 cylinders</code>
<code>Units = cylinders of 16065 * 512 = 8225280 bytes</code>
<code>Sector size (logical</code><code>/physical</code><code>): 512 bytes / 512 bytes</code>
<code>I</code><code>/O</code> <code>size (minimum</code><code>/optimal</code><code>): 512 bytes / 512 bytes</code>
<code>Disk identifier: 0x000813f2</code>
<code> </code><code>Device Boot Start End Blocks Id System</code>
<code>/dev/sda1</code> <code>* 1 26 204800 83 Linux</code>
<code>Partition 1 does not end on cylinder boundary.</code>
<code>/dev/sda2</code> <code>26 10469 83886080 83 Linux</code>
<code>/dev/sda3</code> <code>10469 13080 20971520 83 Linux</code>
<code>/dev/sda4</code> <code>13080 15666 20765696 5 Extended</code>
<code>/dev/sda5</code> <code>13081 13603 4194304 82 Linux swap / Solaris</code>
<code>/dev/sda6</code> <code>13604 13865 2104515 83 Linux</code>
<code>/dev/sda7</code> <code>13866 13997 1060258+ 83 Linux</code>
<code>[root@centos6 ~]</code><code># cat /proc/partitions</code>
<code>major minor </code><code>#blocks name</code>
<code> </code><code>8 0 125829120 sda</code>
<code> </code><code>8 1 204800 sda1</code>
<code> </code><code>8 2 83886080 sda2</code>
<code> </code><code>8 3 20971520 sda3</code>
<code> </code><code>8 4 1 sda4</code>
<code> </code><code>8 5 4194304 sda5</code>
<code> </code><code>8 16 125829120 sdb</code>
<code> </code><code>8 32 20971520 sdc</code>
<code> </code><code>8 48 20971520 sdd</code>
<code> </code><code>8 64 20971520 sde</code>
<code>[root@centos6 ~]</code><code># partx -a /dev/sda</code>
<code>sda sda1 sda2 sda3 sda4 sda5</code>
<code>BLKPG: Device or resource busy</code>
<code>error adding partition 1</code>
<code>error adding partition 2</code>
<code>error adding partition 3</code>
<code>error adding partition 4</code>
<code>error adding partition 5</code>
<code>error adding partition 6</code>
<code>error adding partition 7</code>
<code>[root@centos6 ~]</code><code># !cat</code>
<code>cat</code> <code>/proc/partitions</code>
<code> </code><code>8 6 2104515 sda6</code>
<code> </code><code>8 7 1060258 sda7</code>
二、建立檔案系統
mkfs指令:建立一個linux檔案系統
mkfs - build a Linux file system
用法:
mkfs.fs_type /dev/device #fs_type{ext4 xfs btrfs vfat}
mkfs.fs_type /dev/device -L 'LABEL' #指定卷标
<code>[root@centos6 ~]</code><code># mkfs.ext4 /dev/sda6 -L 'MYDATE'</code>
<code>mke2fs 1.41.12 (17-May-2010)</code>
<code>檔案系統标簽=MYDATE</code>
<code>作業系統:Linux</code>
<code>塊大小=4096 (log=2)</code>
<code>分塊大小=4096 (log=2)</code>
<code>Stride=0 blocks, Stripe width=0 blocks</code>
<code>131648 inodes, 526128 blocks</code>
<code>26306 blocks (5.00%) reserved </code><code>for</code> <code>the super user</code>
<code>第一個資料塊=0</code>
<code>Maximum filesystem blocks=541065216</code>
<code>17 block </code><code>groups</code>
<code>32768 blocks per group, 32768 fragments per group</code>
<code>7744 inodes per group</code>
<code>Superblock backups stored on blocks:</code>
<code>32768, 98304, 163840, 229376, 294912</code>
<code>正在寫入inode表: 完成</code>
<code>Creating journal (16384 blocks): 完成</code>
<code>Writing superblocks and filesystem accounting information: 完成</code>
<code>This filesystem will be automatically checked every 27 mounts or</code>
<code>180 days, whichever comes first. Use tune2fs -c or -i to override.</code>
<code>[root@centos6 ~]</code><code># blkdi</code>
<code>-</code><code>bash</code><code>: blkdi: </code><code>command</code> <code>not found</code>
<code>[root@centos6 ~]</code><code># blkid</code>
<code>/dev/sda2</code><code>: UUID=</code><code>"240533cf-b37f-4460-974f-702bab867da5"</code> <code>TYPE=</code><code>"ext4"</code>
<code>/dev/sda1</code><code>: UUID=</code><code>"4e245c68-a392-4ce9-9a99-5d32d8d43872"</code> <code>TYPE=</code><code>"ext4"</code>
<code>/dev/sda3</code><code>: UUID=</code><code>"86aa7b74-24df-4043-ba83-f3b41a99ce0e"</code> <code>TYPE=</code><code>"ext4"</code>
<code>/dev/sda5</code><code>: UUID=</code><code>"f8ef48ef-b141-48e5-9735-ff9089bd54ba"</code> <code>TYPE=</code><code>"swap"</code>
<code>/dev/sda6</code><code>: UUID=</code><code>"b153fa9a-5b82-4bbc-b580-9170ab88b4a6"</code> <code>TYPE=</code><code>"ext4"</code> <code>LABEL=</code><code>"MYDATE"</code>
………………………………………………………………………………………………
mke2fs指令:建立ext系列檔案系統
mke2fs - create an ext2/ext3/ext4 filesystem
選項:
-t{ext2|ext3|ext4} #指定檔案類型
-b{1024|2048|4096} #指定塊大小
-L 'LABEL' #指定卷标
-j #相當于mke2fs -t ext3,mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為資料空間中每多少個位元組建立一個inode;此大 小不應該小于block的大小
-N #: 為資料空間建立杜少而過inode
-m #: 為管理者預留的空間占總空間的百分比,預設為5%
blkid指令:
blkid - command-line utility to locate/print block device attributes
選項:
-U:UUID #按UUID來查找到相應的裝置
-L:LABEL #按卷标查找到相應的裝置名
e2label指令:
用法:e2label device LABEL
e2lable deveice
tune2fs指令:重新設定檔案系統的超級塊可調參數的屬性值
選項:
-L 'LABEL':修改卷标
-j 将ext2更新到ext3
-o 調整檔案系統挂載選項,acl,取消為^acl
-m #:修預留給管理者的空間百分比
dumpe2fs指令:
-h:檢視超級塊資訊(分組資訊),分區用分組管理
例如:dumpe2fs -h /dev/sda8 tune2fs -l /dev/sda8
檔案修複和檢測:
常發生于當機或者非正常關機之後,常發生于當機或者非正常關機之後
fsck: File System
Check fsck.FS_TYPE
fsck -t FS_TYPE
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<code>[root@centos6 ~]</code><code># mke2fs -t ext4 -b 2048 -L 'MAN' -m 1 /dev/sda8</code>
<code>檔案系統标簽=MAN</code>
<code>塊大小=2048 (log=1)</code>
<code>分塊大小=2048 (log=1)</code>
<code>804864 inodes, 6438032 blocks</code>
<code>64380 blocks (1.00%) reserved </code><code>for</code> <code>the super user</code>
<code>Maximum filesystem blocks=544210944</code>
<code>393 block </code><code>groups</code>
<code>16384 blocks per group, 16384 fragments per group</code>
<code>2048 inodes per group</code>
<code>16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,</code>
<code>2048000, 3981312, 5619712</code>
<code>Creating journal (32768 blocks): 完成</code>
<code>This filesystem will be automatically checked every 30 mounts or</code>
<code>[root@centos6 ~]</code><code># mount /dev/sda8 /mnt</code>
<code>[root@centos6 ~]</code><code># tune2fs -l /dev/sda8</code>
<code>tune2fs 1.41.12 (17-May-2010)</code>
<code>Filesystem volume name: MAN</code>
<code>Last mounted on: <not available></code>
<code>Filesystem UUID: 8528b2b5-4dc3-48c9-91f5-a0d096442b36</code>
<code>Filesystem magic number: 0xEF53</code>
<code>Filesystem revision </code><code>#: 1 (dynamic)</code>
<code>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</code>
<code>Filesystem flags: signed_directory_hash</code>
<code>Default </code><code>mount</code> <code>options: (none)</code>
<code>Filesystem state: clean</code>
<code>Errors behavior: Continue</code>
<code>Filesystem OS </code><code>type</code><code>: Linux</code>
<code>Inode count: 804864</code>
<code>Block count: 6438032</code>
<code>Reserved block count: 64380</code>
<code>Free blocks: 6297100</code>
<code>Free inodes: 804853</code>
<code>First block: 0</code>
<code>Block size: 2048</code>
<code>Fragment size: 2048</code>
<code>Reserved GDT blocks: 512</code>
<code>Blocks per group: 16384</code>
<code>Fragments per group: 16384</code>
<code>Inodes per group: 2048</code>
<code>Inode blocks per group: 256</code>
<code>Flex block group size: 16</code>
<code>Filesystem created: Mon Aug 22 22:43:55 2016</code>
<code>Last </code><code>mount</code> <code>time</code><code>: Mon Aug 22 22:44:44 2016</code>
<code>Last write </code><code>time</code><code>: Mon Aug 22 22:44:44 2016</code>
<code>Mount count: 1</code>
<code>Maximum </code><code>mount</code> <code>count: 30</code>
<code>Last checked: Mon Aug 22 22:43:55 2016</code>
<code>Check interval: 15552000 (6 months)</code>
<code>Next check after: Sat Feb 18 22:43:55 2017</code>
<code>Lifetime writes: 262 MB</code>
<code>Reserved blocks uid: 0 (user root)</code>
<code>Reserved blocks gid: 0 (group root)</code>
<code>First inode: 11</code>
<code>Inode size: 256</code>
<code>Required extra isize: 28</code>
<code>Desired extra isize: 28</code>
<code>Journal inode: 8</code>
<code>Default directory </code><code>hash</code><code>: half_md4</code>
<code>Directory Hash Seed: c5fdca9f-fd8e-4a75-8301-39a64f0e9f3c</code>
<code>Journal backup: inode blocks</code>
<code>[root@centos6 ~]</code><code># blkid /dev/sda8</code>
<code>/dev/sda8</code><code>: LABEL=</code><code>"MAN"</code> <code>UUID=</code><code>"8528b2b5-4dc3-48c9-91f5-a0d096442b36"</code> <code>TYPE=</code><code>"ext4"</code>
<code>[root@centos6 ~]</code><code># blkid -U "8528b2b5-4dc3-48c9-91f5-a0d096442b36"</code>
<code>/dev/sda8</code>
<code>[root@centos6 ~]</code><code># blkid -L MAN</code>
<code>[root@centos6 ~]</code><code># e2label /dev/sda8 HUMAN</code>
<code>[root@centos6 ~]</code><code># e2label /dev/sda8</code>
<code>HUMAN</code>
<code>[root@centos6 ~]</code><code># tune2fs -L 'BABY' /dev/sda8</code>
<code>[root@centos6 ~]</code><code># tune2fs -o acl /dev/sda8</code>
<code>[root@centos6 ~]</code><code># tune2fs -l /dev/sda8</code>
<code>Filesystem volume name: BABY</code>
<code>Default </code><code>mount</code> <code>options: acl</code>
<code>Last write </code><code>time</code><code>: Mon Aug 22 23:01:13 2016</code>
<code>Inode size: 256</code>
<code>[root@centos6 ~]</code><code># tune2fs -m 5 /dev/sda8</code>
<code>Setting reserved blocks percentage to 5% (321901 blocks)</code>
三、挂載檔案系統
mount指令:
用法:
mount DEVICE MOUNT_POINT
mount [-fnrsvw] [-t vfstype] [-o options] device dir
挂載方式:
1)裝置檔案 例如:mount /dev/sda5 /mnt
2)卷标 例如:mount -L 'MYDATE' /mnt
3)UUID 例如:mount -U '40d51666-7a52-4613-bac9-0a1f27afeee8'/mnt
選項:
-t:指定檔案類型
-r:隻讀挂載
-w:讀寫挂載
-n:不更新/etc/mtab
-a:自定挂載/etc/fstab定義的裝置
-L:卷标
-U:uuid
-B:綁定目錄到另一個目錄上
檢視核心最終到的挂載的所有裝置:cat /proc/mounts
-o options:(挂載檔案系統的選項),多個選項使用逗号分隔 async:異步模式 sync:同步模式,記憶體更改時,同時寫磁盤 atime/noatime:包含目錄和檔案 diratime/nodiratime:目錄的通路時間戳 auto/noauto:是否支援自動挂載,是否支援-a選項 exec/noexec:是否支援将檔案系統上運作應用程式 dev/nodev:是否支援在此檔案系統上使用裝置檔案 suid/nosuid:不否支援suid和sgid權限 remount:重新挂載 ro:隻讀 rw:讀寫 user/nouser:是否允許普通使用者挂載此裝置,預設管理者才能挂載 acl:啟用此檔案系統上的acl功能 Defaults:相當于rw, nosuid, dev, exec, auto, nouser, async
umount指令:
umount DEVICE
umount MOUNT_POINT
四、挂載至配置檔案
/etc/fstab 每行定義一個要挂載的檔案系統說明
<code>[root@centos6 ~]</code><code># cat /etc/fstab</code>
<code>#</code>
<code># /etc/fstab</code>
<code># Created by anaconda on Thu Aug 11 03:07:57 2016</code>
<code># Accessible filesystems, by reference, are maintained under '/dev/disk'</code>
<code># See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info</code>
<code>UUID=240533cf-b37f-4460-974f-702bab867da5 / ext4 defaults 1 1</code>
<code>UUID=4e245c68-a392-4ce9-9a99-5d32d8d43872 </code><code>/boot</code> <code>ext4 defaults 1 2</code>
<code>UUID=86aa7b74-24df-4043-ba83-f3b41a99ce0e </code><code>/testdir</code> <code>ext4 defaults 1 2</code>
<code>UUID=f8ef48ef-b141-48e5-9735-ff9089bd54ba swap swap defaults 0 0</code>
<code>tmpfs </code><code>/dev/shm</code> <code>tmpfs defaults 0 0</code>
<code>devpts </code><code>/dev/pts</code> <code>devpts gid=5,mode=620 0 0</code>
<code>sysfs </code><code>/sys</code> <code>sysfs defaults 0 0</code>
<code>proc </code><code>/proc</code> <code>proc defaults 0 0</code>
<code>#要挂載的裝置或為檔案系統 #挂載點 #檔案類型 #選項 #轉儲 #自檢 </code>
<code>[root@centos6 ~</code>
本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1842660,如需轉載請自行聯系原作者