天天看點

磁盤管理之分區格式化及其挂載

一、磁盤管理總體分類 

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:          &lt;not available&gt;</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,如需轉載請自行聯系原作者

繼續閱讀