磁盤管理

設備文件

I/O Ports: I/O 設備地址

一切皆文件:

open(), read(), write(), close()

設備類型:

塊設備:block ,存取單位“塊”,磁盤

[root@localhost ~]# ll /dev/
brw-rw----. 1 root disk    253,   0 Apr 29 03:53 dm-0   塊設備
brw-rw----. 1 root disk    253,   1 Apr 29 03:53 dm-1   塊設備

字符設備:char ,存取單位“字符”,鍵盤

[root@localhost ~]# ll /dev/
total 0
crw-rw----. 1 root video    10, 175 Apr 29 03:53 agpgart    字符設備
crw-------. 1 root root     10, 235 Apr 29 03:53 autofs 字符設備

區別: 塊設備是物理存在的設備,進行訪問時基于隨機訪問;有緩存

          字符設備邏輯上并不存在,進行訪問時基于順序訪問;無緩存

 

設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信

[root@localhost ~]# ll /dev/ 存放在/dev/目錄下
total 0
crw-rw----. 1 root video    10, 175 Apr 29 03:53 agpgart
crw-------. 1 root root     10, 235 Apr 29 03:53 autofs
crw-------. 1 root root     10,  61 Apr 29 03:53 cpu_dma_latency
crw-------. 1 root root     10,  62 Apr 29 03:53 crash
brw-rw----. 1 root disk    253,   0 Apr 29 03:53 dm-0
brw-rw----. 1 root disk    253,   1 Apr 29 03:53 dm-1
brw-rw----. 1 root disk    253,   2 Apr 29 03:53 dm-2

設備號碼:

主設備號:major number,  標識設備類型

次設備號:minor number,  標識同一類型下的不同設備

[root@localhost ~]# ll /dev/sda*
b(設備類型)rw-rw----. 1 root disk 8, 0(主要編碼,次要編碼) Apr 29 03:53 /dev/sda
b(設備類型)rw-rw----. 1 root disk 8, 1(主要編碼,次要編碼) Apr 29 03:53 /dev/sda1
b(設備類型)rw-rw----. 1 root disk 8, 2(主要編碼,次要編碼) Apr 29 03:53 /dev/sda2

 

硬盤接口類型

并行:

IDE 133MB/s

SCSI 640MB/s

串口:

SATA 6Gbps

SAS 6Gbps

USB 480MB/s

rpm: rotations

per minute (每分鐘轉速)

接口速度為理論值

內存單位:B  K M G T P E Z Y B N D

1B=81bt 1K=1024B 1M=1024K  1G=1024M……

 

設備文件

磁盤設備的設備文件命名:/dev/DEV_FILE

IDE: /dev/hd

SCSI, SATA, SAS, USB: /dev/sd

不同設備:a-z

/dev/sda, /dev/sdb, …

同一設備上的不同分區:1,2, …

/dev/sda1, /dev/sda5

主要分區,擴展分區;/dev/sda1-4

邏輯分區;/dev/sda5-……

[root@station29 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   200G  0 disk
├─sda1   8:1    0   200M  0 part /boot 主要分區
├─sda2   8:2    0    20G  0 part /data 主要分區
├─sda3   8:3    0    10G  0 part /home 主要分區
├─sda4   8:4    0     1K  0 part 擴展分區不能直接使用,用來包含邏輯分區
├─sda5   8:5    0     2G  0 part [SWAP] 邏輯分區
└─sda6   8:6    0 167.8G  0 part / 邏輯分區

 

硬盤存儲術語

    head :磁頭 最多256個磁頭

    track :磁道 1024個磁道,0-1023,;最多存放63個扇區

    cylinder:  柱面 柱面數等磁道數

    secotr:  扇區,一個扇區512bytes(字節)

[root@station29 ~]# fdisk -l /dev/sda
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x000ee556

[root@localhost ~]# fdisk -l -u=cylinder   以柱面為單位 (CentOS7中)
 Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *       1         131     1048576   83  Linux
/dev/sda2         131       10444    82836480   8e  Linux LVM

機械硬盤和固態硬盤

機械硬盤(HDD ):Hard Disk Drive ,即是傳統普通硬盤,主要由:盤片,磁頭,盤片轉軸及控制電機,磁頭控制器,數據轉換器,接口,緩存等幾個部分組成。機械硬盤中所有的盤片都裝在一個旋轉軸上,每張盤片之間是平行的,在每個盤片的存儲面上有一個磁頭,磁頭與盤片之間的距離比頭發絲的直徑還小,所有的磁頭聯在一個磁頭控制器上,由磁頭控制器負責各個磁頭的運動。磁頭可沿盤片的半徑方向運動,加上盤片每分鐘幾千轉的高速旋轉,磁頭就可以定位在盤片的指定位置上進行數據的讀寫操作。數據通過磁頭由電磁流來改變極性方式被電磁流寫到磁盤上,也可以通過相反方式讀取。硬盤為精密設備,進入硬盤的空氣必須過濾

固態硬盤(SSD ):Solid State Drive ,用固態電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH 芯片、DRAM 芯片)組成。固態硬盤在接口的規范和定義、功能及使用方法上與普通硬盤的完全相同,在產品外形和尺寸上也與普通硬盤一致

      相較于HDD SSD 在防震抗摔、傳輸速率、功耗、重量、噪音上有明顯優勢,SSD 傳輸速率性能是HDD 2

      相較于SSD ,HDD 在價格、容量、使用壽命上占有絕對優勢

      硬盤有價,數據無價,目前SSD 不能完全取代HHD

 

磁盤分區

為什么分區?

    優化I/O 性能

    實現磁盤空間配額限制 (控制用戶在磁盤存儲多少數據)

    提高修復速度

    隔離系統和程序

    安裝多個OS(操作系統)

    采用不同文件系統

兩種分區方式:MBR ,GPT

MBR: Master Boot Record ,1982年, 使用32位表示扇區數,分區不超過2T

如何分區:按柱面

0 磁道0 扇區:512bytes

  446bytes: boot loader(啟動加載器,引導操作系統)

  64bytes :分區表

16bytes:  標識一個分區

  2bytes: 55AA

4個主分區;3 主分區+1 擴展(N 個邏輯分區)

 

[root@localhost ~]# echo '- - -' >/sys/class/scsi_host/host2/scan (掃描磁盤)

虛擬機中添加虛擬磁盤后使用,生產中自動識別

 

例:破壞分區表前512字節后恢復
[root@station29 ~]# hexdump -C /dev/sda -n 512 (查看前512字節)
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0   |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00   |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75   |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02   |.........|...t..|
00000040  80 00 00 80 72 62 00 00  00 08 fa 90 90 f6 c2 80   |....rb..........|
......
[root@station29 ~]# dd if=/dev/sda of=mbr bs=1 count=512
將/dev/sda前512字節讀取到mbr中
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00173963 s, 294 kB/s
[root@station29 ~]# hexdump -C mbr
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 72 62 00 00  00 08 fa 90 90 f6 c2 80  |....rb..........|
......
[root@station29 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512
破壞/dev/sda前512字節,從零文件輸出內容到/dev/sda前512字節
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00310584 s, 165 kB/s
[root@station29 ~]# hexdump -C /dev/sda -n 512
查看/dev/sda前512字節
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
已經歸0
[root@station29 ~]# dd if=mbr of=/dev/sda
將mbr中的內容讀取到/dev/sda中
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000188347 s, 2.7 MB/s
[root@station29 ~]# hexdump -C /dev/sda -n 512
00000000  eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.H..............|
00000010  fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..|
00000020  00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u......u|
00000030  f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 03 02 |.........|...t..|
00000040  80 00 00 80 72 62 00 00 00 08 fa 90 90 f6 c2 80 |....rb.........|
恢復成功

MBR分區結構

磁盤管理 

 

GPT 分區

GPT:GUID Globals Unique Identifiers) ) partitiontable  支持128個 個 分區,使用64 位,支持8Z( (512Byte/block  64Z ( ( 4096Byte/block) )

使用128 UUID(Universally Unique Identifier)  表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC 校驗位

UEFI ( 統一擴展固件接口) 硬件支持GPT ,使操作系統啟動

GPT 分區結構

磁盤管理 

EFI部分又可以分為4個區域:EFI信息區(GPT)、分區表、GPT分區、備份區域

[root@station29 ~]# blkid (查看UUID)
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4: UUID="5f4df3af-f8a8-42cb-a391-79974b5c1aa2" TYPE="ext4"
[root@station29 ~]# uuidgen (生成新的UUID)
afd2aefe-f519-4d78-b04d-7728863c1939
[root@station29 ~]# uuidgen
25aabc53-4031-4272-a54f-7f4a9b0f088e
[root@station29 ~]# uuidgen
36c2795d-7c32-4be2-b241-9b15113da1bc

CentOS中查看分區結構是MBR分區還是GPT 分區

 

[root@localhost ~]# fdisk -l
Disk /dev/sda: 85.9 GB, 85899345920 bytes, 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos (dos對應MBR  gpt對應GPT)
Disk identifier: 0x0004630b

管理分區

列出塊設備

lsblk (查看內存中的分區表)

ls /dev/sd* (查看內存中有幾個分區)

cat /proc/partitions (查看內存中有幾個分區)

fdisk -l (查看磁盤上的分區表)

創建分區使用:

fdisk  創建MBR 分區

gdisk  創建GPT 分區

fdisk /dev/sdb

gfisk /dev/sdb  fdisk  GPT 分區工具

# fdisk -l [-u] [device…]

子命令:

p 分區列表

t 更改分區類型

n 創建新分區

d 刪除分區

w 保存并退出

q 不保存并退出

parted  高級分區操作(創建、復制、調整大小等等)

parted 的操作都是實時生效的,小心使用

用法:parted [ 選項]… [備 設備 [令 命令 [ 參數]…]…]

parted /dev/sdb mklabel gpt|msdos

parted /dev/sdb print

parted /dev/sdb mkpart primary 1 200  (默認M) ) (創建分區)

parted /dev/sdb rm 1 (刪除分區)

parted -l

 

創建MBR 分區

[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   80G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   79G  0 part
  ├─cl-root 253:0    0   50G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0   27G  0 lvm  /home
sdb           8:16   0   30G  0 disk
├─sdb1        8:17   0    1G  0 part
└─sdb2        8:18   0    2G  0 part
sdc           8:32   0   20G  0 disk
sr0          11:0    1  7.7G  0 rom  
 
[root@localhost ~]# dd if=/dev/zero of=/dev/sdb bs=1 count=66 skip=446 seek=446
66+0 records in
66+0 records out
66 bytes (66 B) copied, 0.0407596 s, 1.6 kB/s
 
[root@localhost ~]# hexdump -C /dev/sdb -n 512
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  af e8 a9 f3 00 00 00 00  |................|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
 
[root@localhost ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
 
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   80G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   79G  0 part
  ├─cl-root 253:0    0   50G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0   27G  0 lvm  /home
sdb           8:16   0   30G  0 disk
sdc           8:32   0   20G  0 disk
sr0          11:0    1  7.7G  0 rom  
 
[root@localhost ~]# parted /dev/sdb mklabel gpt
Information: You may need to update /etc/fstab.
 
[root@localhost ~]# fdisk -l /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
#         Start          End    Size  Type            Name
 
[root@localhost ~]# parted /dev/sdb mkpart primary 1 1000
Information: You may need to update /etc/fstab.
[root@localhost ~]# fdisk -l /dev/sdb                                     
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
#         Start          End    Size  Type            Name
1         2048      1953791    953M  Microsoft basic primary
 
[root@localhost ~]# parted /dev/sdb mkpart primary 1001 3000
Information: You may need to update /etc/fstab.
 
[root@localhost ~]# lsblk                                                 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   80G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   79G  0 part
  ├─cl-root 253:0    0   50G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0   27G  0 lvm  /home
sdb           8:16   0   30G  0 disk
├─sdb1        8:17   0  953M  0 part
└─sdb2        8:18   0  1.9G  0 part
sdc           8:32   0   20G  0 disk
sr0          11:0    1  7.7G  0 rom  
 
[root@localhost ~]# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
 
Number  Start   End     Size    File system  Name     Flags
 1      1049kB  1000MB  999MB   ext4         primary
 2      1001MB  3000MB  1999MB               primary
 
[root@localhost ~]# parted /dev/sdb rm 1    (刪除分區)
Information: You may need to update /etc/fstab.
[root@localhost ~]# parted /dev/sdb print                                 
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system  Name     Flags
 2      1001MB  3000MB  1999MB               primary
 
[root@localhost ~]# parted /dev/sdb rm 2
Information: You may need to update /etc/fstab.
[root@localhost ~]# parted /dev/sdb print                                 
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start  End  Size  File system  Name  Flags
刪除分區后,分區表還在

創建GPT 分區

[root@localhost ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.6
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): ?
b   back up GPT data to a file
c   change a partition's name
d   delete a partition
i   show detailed information on a partition
l   list known partition types
n   add a new partition
o   create a new empty GUID partition table (GPT)
p   print the partition table
q   quit without saving changes
r   recovery and transformation options (experts only)
s   sort partitions
t   change a partition's type code
v   verify disk
w   write table to disk and exit
x   extra functionality (experts only)
?   print this menu
Command (? for help): p
Disk /dev/sdb: 62914560 sectors, 30.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0C46C34F-DB4A-4E3A-8D8B-EE2D49F2027A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 62914526
Partitions will be aligned on 2048-sector boundaries
Total free space is 62914493 sectors (30.0 GiB)
Number  Start (sector)    End (sector)  Size       Code  Name
Command (? for help): n
Partition number (1-128, default 1): 100
First sector (34-62914526, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-62914526, default = 62914526) or {+-}size{KMGTP}: +1G          
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): p
Disk /dev/sdb: 62914560 sectors, 30.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0C46C34F-DB4A-4E3A-8D8B-EE2D49F2027A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 62914526
Partitions will be aligned on 2048-sector boundaries
Total free space is 60817341 sectors (29.0 GiB)
Number  Start (sector)    End (sector)  Size       Code  Name
 100            2048         2099199   1024.0 MiB  8300  Linux filesystem
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   80G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   79G  0 part
  ├─cl-root 253:0    0   50G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0   27G  0 lvm  /home
sdb           8:16   0   30G  0 disk
└─sdb100    259:0    0    1G  0 part
sdc           8:32   0   20G  0 disk
sr0          11:0    1  7.7G  0 rom  

GPT分區和MBR分區不能轉換

擴展分區如果被刪除,所有邏輯分區都被刪除

partprobe-重新設置內存中的內核分區表版本

 

同步分區表

查看內核是否已經識別新的分區:

cat /proc/partations

centos6 通知內核重新讀取 硬盤分區表

新增分區用

partx -a /dev/DEVICE CentOS6中使用)

kpartx -a /dev/DEVICE -f: force

刪除分區用

partx -d –nr M-N /dev/DEVICE M-N  #-#指定一個范圍,單獨數字也可)

CentOS 5 7:  

使用partprobe

partprobe [/dev/DEVICE]

 

文件系統

文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。

從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。

支持的文件系統:/lib/modules/`uname r`/kernel/fs

[root@localhost ~]# cd /lib/modules/3.10.0-514.el7.x86_64/
[root@localhost 3.10.0-514.el7.x86_64]# cd kernel/fs
[root@localhost fs]# ls
binfmt_misc.ko  ceph    dlm    fat      gfs2   lockd      nfs_common  overlayfs  udf
btrfs           cifs    exofs  fscache  isofs  mbcache.ko  nfsd        pstore     xfs
cachefiles      cramfs  ext4   fuse     jbd2   nfs         nls         squashfs

 

文件系統類型

Linux 文件系統:ext2(Extended file system)無日志功能, ext3,ext4, xfs SGI , btrfs Oracle , reiserfs, jfsAIX, swap

光盤:iso9660

Windows fat32, ntfs

Unix: FFS fast , UFS unix , JFS2

網絡文件系統:NFS, CIFS

集群文件系統:GFS2, OCFS2 oracle

分布式文件系統: fastdfs,ceph, moosefs, mogilefs,glusterfs, Lustre

RAW :未經處理或者未經格式化產生的文件系統

 

文件系統分類

根據其是否支持“journal(日志)功能:

日志型文件系統: ext3, ext4, xfs, …

非日志型文件系統: ext2, vfat

文件系統的組成部分:

內核中的模塊:ext4, xfs, vfat

用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

Linux 的虛擬文件系統:VFS

查前支持的文件系統:cat /proc/filesystems

VFS

磁盤管理 

 

創建文件系統

 mkfs 命令:

(1) # mkfs.FS_TYPE /dev/DEVICE

ext4

xfs

btrfs

vfat

(2) # mkfs -t FS_TYPE /dev/DEVICE

-L ‘LABEL’: 設定卷標

 

例題:
[root@station29 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb      8:16   0    30G  0 disk
sda      8:0    0   200G  0 disk
├─sda1   8:1    0   200M  0 part /boot
├─sda2   8:2    0    20G  0 part /data
├─sda3   8:3    0    10G  0 part /home
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0     2G  0 part [SWAP]
└─sda6   8:6    0 167.8G  0 part /
sdc      8:32   0    20G  0 disk
sr0     11:0    1   3.7G  0 rom  
 
[root@station29 ~]# cat <<eof | fdisk /dev/sdc
> n
> p
> 1
>
> +1G
> w
> eof
 
[root@station29 ~]# cat <<eof | fdisk /dev/sdc
n
p
2
 
+2G
w
eof
 
[root@station29 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb      8:16   0    30G  0 disk
sda      8:0    0   200G  0 disk
├─sda1   8:1    0   200M  0 part /boot
├─sda2   8:2    0    20G  0 part /data
├─sda3   8:3    0    10G  0 part /home
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0     2G  0 part [SWAP]
└─sda6   8:6    0 167.8G  0 part /
sdc      8:32   0    20G  0 disk
├─sdc1   8:33   0     1G  0 part
└─sdc2   8:34   0     2G  0 part
sr0     11:0    1   3.7G  0 rom
 
[root@station29 ~]# mkfs.ext4 /dev/sdc1 (在/dev/sdc創建ext4文件系統)
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
66384 inodes, 265064 blocks
13253 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=272629760
9 block groups
32768 blocks per group, 32768 fragments per group
7376 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
 
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
[root@station29 ~]# mkfs.vfat /dev/sdc2 (在/dev/sdc創建vfat文件系統)
mkfs.vfat 3.0.9 (31 Jan 2010)
[root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="2c31cbc0-4925-427a-99e2-071e2e0d9b22" TYPE="ext4"
/dev/sdc2: UUID="DF61-B770" TYPE="vfat"

 

mke2fs ext 系列文件系統專用管理工具

-t {ext2|ext3|ext4}

-b {1024|2048|4096} (指定塊大小)

-L ‘LABEL’

-j: 相當于 -t ext3

mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

-i #:  為數據空間中每多少個字節創建一個inode ;此大小不應該小于block 的大小

-N # :為數據空間創建個多少個inode

-I  一個inode 記錄 占用的磁盤空間 大小,128—4096

-m #:  默認5%, 為管理人員預留空間占總空間的百分比

-O FEATURE[,…] :啟用指定特性

-O ^FEATURE:關閉指定特性

 

[root@station29 ~]# mke2fs /dev/sdc2
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131648 inodes, 526128 blocks
26306 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=541065216
17 block groups
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
 
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
[root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="2c31cbc0-4925-427a-99e2-071e2e0d9b22" TYPE="ext4"
/dev/sdc2: UUID="56621a76-a419-44f8-8f28-df988b3f196d" TYPE="ext2"
[root@station29 ~]# tune2fs -l /dev/sdc1 (查看ext文件系統特性)
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          868e4945-13c6-41c9-8b4b-62e6180e3838
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features: (文件系統特性)     has_journal ext_attr resize_inode dir_index filetype extent flex_bg
sparse_super large_file 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:              66384
Block count:              265064
Reserved block count:     13253
Free blocks:              252369
Free inodes:              66373
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      64
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7376
Inode blocks per group:   461
Flex block group size:    16
Filesystem created:       Mon Apr 24 12:34:56 2017
Last mount time:          n/a
Last write time:          Mon Apr 24 12:34:56 2017
Mount count:              0
Maximum mount count:      33
Last checked:             Mon Apr 24 12:34:56 2017
Check interval:           15552000 (6 months)
Next check after:         Sat Oct 21 12:34:56 2017
Lifetime writes:          49 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      071a5b59-49b4-4e2d-9ca5-8524a1382359
Journal backup:           inode blocks
 
[root@station29 ~]# mke2fs -j /dev/sdc2      
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131648 inodes, 526128 blocks
26306 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=541065216
17 block groups
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
 
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
/dev/sdc2: UUID="56621a76-a419-44f8-8f28-df988b3f196d" TYPE="ext2"
mke2fs -j /dev/sdc2  (將/sdc2的ext2文件系統轉為ext3文件系統)
/dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"

 

例:指定塊大小   (塊大小為扇區的整數倍  單位為1024 2048 4096)
[root@station29 ~]# mkfs.ext4 /dev/sdc4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
28224 inodes, 112452 blocks
5622 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
14 block groups
8192 blocks per group, 8192 fragments per group
2016 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
 
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
[root@station29 ~]# mkfs.ext4  -b 4096 /dev/sdc4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
28128 inodes, 28113 blocks
1405 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=29360128
1 block group
32768 blocks per group, 32768 fragments per group
28128 inodes per group
 
Writing inode tables: done                            
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
[root@station29 ~]# mkfs.ext4  -b 4000 /dev/sdc4 (將塊大小設置為4000)
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=2048 (log=1)                        “超出塊大小”操作失敗
 
[root@station29 ~]# mkfs.ext4  -b 5000 /dev/sdc4
Warning: blocksize 5000 not usable on most systems.
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: 5000-byte blocks too big for system (max 4096)
“5000字節塊的系統太大(最大4096)”
Proceed anyway? (y,n) y
Warning: 5000-byte blocks too big for system (max 4096), forced to continue
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
塊大小最大值為4096,設置完塊大小后不能更改,除非格式化后重新指定
 
 
[root@station29 ~]#  tune2fs -l /dev/sdc4
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          5f4df3af-f8a8-42cb-a391-79974b5c1aa2
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:              28224 inode數量
Block count:              112452 塊數量
 
[root@station29 ~]# mkfs.ext4 -b 4096 -i 10240 /dev/sdc4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
 
root@station29 ~]#  tune2fs -l /dev/sdc4
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          0b95467a-fc7d-49ba-9297-63c455bc8126
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file 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:              11264
Block count:              28113

 

文件系統標簽

指向設備的另一種方法,與設備無關

blkid :塊設備屬性信息查看

blkid [OPTION]… [DEVICE]

-U UUID:  根據指定的UUID 來查找對應的設備

[root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4: UUID="0b95467a-fc7d-49ba-9297-63c455bc8126" TYPE="ext4"
[root@station29 ~]# blkid -U 1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6
/dev/sda6
 
[root@station29 ~]# blkid /dev/sda6
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"

 

-L LABEL :根據指定的LABEL 來查找對應的設備

e2label :管理ext 系列文件系統的LABEL

# e2label DEVICE [LABEL]

findfs  :查找分區

findfs [options] LABEL=<label>

findfs [options] UUID=<uuid>

[root@station29 ~]# findfs UUID="7a8216c5-6781-4494-b2da-fda672f117ad"
/dev/sda5

 

tune2fs

tune2fs:重新設定ext 系列文件系統可調整參數的值

-l :查看指定文件系統超級塊信息;super block

-L ‘LABEL’ :修改卷標   (一般情況下,掛載的文件夾作為卷標,推薦UUID作為卷標)

[root@station29 ~]# mkfs.ext4 /dev/sdc4 -L /mnt/sdc4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=/mnt/sdc4
OS type: Linux
Block size=1024 (log=0)
[root@station29 ~]# blkid
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
   /dev/sdc4:UUID="acc7aca0-4883-4885-8159-20d533aaa661"TYPE="ext4"LABEL="/mnt/sdc4"

-m # :修預留給管理員的空間百分比

-j:  ext2升級為ext3

-O:  文件系統屬性啟用或禁用, O ^has_journal

-o:  調整文件系統的默認 掛載選項,–o ^acl

-U UUID:  修改UUID

[root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4:UUID="acc7aca0-4883-4885-8159-20d533aaa661"TYPE="ext4"LABEL="/mnt/sdc4"
[root@station29 ~]# uuidgen 生成一個新的UUID
f90b876d-8226-4cb2-9a58-81570578846d
[root@station29 ~]# tune2fs -U f90b876d-8226-4cb2-9a58-81570578846d /dev/sdc4
tune2fs 1.41.12 (17-May-2010)
[root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4:UUID="f90b876d-8226-4cb2-9a58-81570578846d"TYPE="ext4"LABEL="/mnt/sdc4"

dumpe2fs

-h :查看超級塊信息,不顯示分組信息

 

文件系統檢測和修復

常發生于死機或者非正常關機之后

掛載為文件系統標記為no clean

注意:一定不要在掛載狀態下修復

fsck: File System Check

fsck.FS_TYPE

fsck -t FS_TYPE

-p:  自動修復錯誤

-r:  交互式修復錯誤

FS_TYPE 一定要與分區上已經文件類型相同

e2fsck ext 系列文件專用的檢測修復工具

-y :自動回答為yes

-f :強制修復

 

 

 

原創文章,作者:Linux.rookie,如若轉載,請注明出處:http://www.www58058.com/74457

(0)
Linux.rookieLinux.rookie
上一篇 2017-04-27
下一篇 2017-04-28

相關推薦

  • 精解局域網訪問及共享(三)

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/155109    上一節中的2種情況都是默認的簡單共享,下面我們著重分析一下高級共享方式下的各種訪問情況。畢竟這種方式用的很普遍,而且在權限…

    Linux干貨 2015-03-25
  • 網絡21期第十周博客作業

    網絡21期第十周博客作業 1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) Centos6啟動流程:       POST加電自檢 —> BOOT Sequence —> 加載內核啟動系統  &…

    Linux干貨 2016-09-15
  • N25第三周作業

    一、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@centos01 ~]# who | cut -d " " -f1 | uniq -u root qufudcj 二、取出最后…

    Linux干貨 2016-12-26
  • RAID簡述和Linux軟RAID配置

    RAID簡述和Linux軟RAID配置 PS:僅為課程練習,原理和配置可能有誤,僅供參考,謝謝; 1.RAID功能簡述     RAID,全稱(Redundant Arrays of Inexpensive Disk或Redundant Arrays of Independent Disk),現在一般多用于后面那個稱呼,獨立磁盤冗余陣列。RAID的基礎概念大…

    Linux干貨 2016-07-17
  • yum命令的使用及磁盤管理中命令的使用方法(mkfs ,blkid,e2label等)

    yum      #cd /etc/yum.repos.d          #yum repolist(在 #cd下)其他命令在 #cd /etc/yum.repos.d運行          #yum-config-manag…

    2017-08-19
  • 網絡管理命令

    linux網絡屬性     ifconfig命令家族:ifconfig,route,netstat ifconfig命令:接口及地址查看和管理     ifconfig [interface]:     ifconfig -a:顯示所有接口…

    Linux干貨 2016-09-13
欧美性久久久久