磁盤的分區與管理

磁盤的分區與管理

本文介紹了linux系統下,磁盤的分區與管理相關操作命令,在每個主要命令後面附加了實驗進行檢測。


一、 磁盤分區:fdisk

此處我們主要是使用傳統的磁盤分區,不涉及mdm以及lvm等內容。

1. 查看磁盤分區信息,使用fdisk -l,可以查看到傳統的磁盤分區以及lvm卷的信息。

[root@liuqing ~]# fdisk -l

磁盤 /dev/sda:128.8 GB, 128849018880 字節,251658240 個扇區

Units = 扇區 of 1 * 512 = 512 bytes

扇區大小(邏輯/物理):512 字節 / 512 字節

I/O 大小(最小/最佳):512 字節 / 512 字節

磁盤標籤類型:dos

磁盤標識符:0x000ce7f5

設備 Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048     2099199     1048576   83  Linux

/dev/sda2         2099200   209715199   103808000   8e  Linux LVM

磁盤 /dev/mapper/centos-root:53.7 GB, 53687091200 字節,104857600 個扇區

Units = 扇區 of 1 * 512 = 512 bytes

扇區大小(邏輯/物理):512 字節 / 512 字節

I/O 大小(最小/最佳):512 字節 / 512 字節

磁盤 /dev/mapper/centos-swap:2147 MB, 2147483648 字節,4194304 個扇區

Units = 扇區 of 1 * 512 = 512 bytes

扇區大小(邏輯/物理):512 字節 / 512 字節

I/O 大小(最小/最佳):512 字節 / 512 字節

磁盤 /dev/mapper/centos-home:50.5 GB, 50457477120 字節,98549760 個扇區

Units = 扇區 of 1 * 512 = 512 bytes

扇區大小(邏輯/物理):512 字節 / 512 字節

I/O 大小(最小/最佳):512 字節 / 512 字節

2. fdisk的主要參數

注意:fdisk的操作都是在內存中,並沒有實時的操作磁盤。只有在使用w命令存盤時纔會寫入到磁盤。

d   delete a partition #刪除一個分區

l   list known partition types #顯示已知的分區類型,常見的82、83、8e、

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 #調整分區類型

w   write table to disk and exit #存盤並退出

3. 實驗:創建一個10G的分區,其分區類型爲83,分區號爲/dev/sda3

[root@liuqing ~]# fdisk -l /dev/sda

命令(輸入 m 獲取幫助):n

Partition type:

p   primary (2 primary, 0 extended, 2 free)

e   extended

Select (default p): p

分區號 (3,4,默認 3):3

起始 扇區 (209715200-251658239,默認爲 209715200):

將使用默認值 209715200

Last 扇區, +扇區 or +size{K,M,G} (209715200-251658239,默認爲 251658239):+10G

分區 3 已設置爲 Linux 類型,大小設爲 10 GiB

命令(輸入 m 獲取幫助):w

The partition table has been altered!

Calling ioctl() to re-read partition table.

# 創建一個分區時,輸入命令n

# 接着要選擇分區的類型是主分區還是擴展分區,對於MBR磁盤來說,主分區加擴展分區最多4個

# 選擇分區號1-4爲主分區、擴展分區;擴展分區下的邏輯分區從5開始

# 輸入起始扇區號以及分區大小

# 存盤退出

4. 查看分區信息,已經多了一個

[root@liuqing ~]# fdisk -l

設備 Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048     2099199     1048576   83  Linux

/dev/sda2         2099200   209715199   103808000   8e  Linux LVM

/dev/sda3       209715200   230686719    10485760   83  Linux


二、讓內核讀盤

使用fdisk創建一個分區以後,內核沒有實時的識別它,需要使用命令來重新讀取一次分區。使用的命令有兩個:partx以及kpartx.

1. 查看內核已經識別的分區信息,並沒有看到/dev/sda3的信息。

[root@liuqing ~]# cat /proc/partitions

major minor  #blocks  name

8        0  125829120 sda

8        1    1048576 sda1

8        2  103808000 sda2

......省略其他不相關的信息

2. 使用partx重新讀取分區信息,如果執行一次不行,可以再執行一次。

[root@liuqing ~]# partx -a /dev/sda

partx: /dev/sda: error adding partitions 1-2

[root@liuqing ~]# cat /proc/partitions

major minor  #blocks  name

8        0  125829120 sda

8        1    1048576 sda1

8        2  103808000 sda2

8        3   10485760 sda3

3. partx和kpartx的使用方法

A. partx -a [device]

B. kpartx -af [device]


三、創建文件系統

掌握創建文件系統的命令及參數

在這裏我們主要介紹ext系列文件系統創建工具mke2fs的使用方法,它的功能比較強大。其他的命令還有mkfs.ext2, mkfs.ext3, mkfs.ext4;  mkfs等。

mke2fs [OPTIONS]  device

-t {ext2|ext3|ext4}:指明要創建的文件系統類型

mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4

-b {1024|2048|4096}:指明文件系統的塊大小;

-L LABEL:指明卷標;

-j:創建有日誌功能的文件系統ext3;

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

-i #:bytes-per-inode,指明inode與字節的比率;即每多少字節創建一個Indode;

-N #:直接指明要給此文件系統創建的inode的數量;

-m #:指定預留的空間,百分比;

-O [^]FEATURE:以指定的特性創建目標文件系統;

實驗: 對/dev/sda3創建文件系統,文件系統的類型爲ext4,系統使用的塊大小爲2048,卷標爲Mydata,預留給管理員的空間爲4%;

[root@liuqing ~]# mke2fs -t ext4 -b 2048 -L "Mydata" -m 4 /dev/sda3

mke2fs 1.42.9 (28-Dec-2013)

文件系統標籤=Mydata

OS type: Linux

塊大小=2048 (log=1)

分塊大小=2048 (log=1)

Stride=0 blocks, Stripe width=0 blocks

655360 inodes, 5242880 blocks

209715 blocks (4.00%) reserved for the super user

第一個數據塊=0

Maximum filesystem blocks=273678336

320 block groups

16384 blocks per group, 16384 fragments per group

2048 inodes per group

Superblock backups stored on blocks:

16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,

2048000, 3981312

Allocating group tables: 完成

正在寫入inode表: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成


四、 調整分區屬性以及其它命令

1. e2label: 用於查看和設定卷標

查看:e2label DEVICE

設定:e2label DEVICE LABEL_NAME

2. dumpe2fs: 用於顯示ext系列文件系統的屬性信息

dumpe2fs  [-h] device

3.  e2fsck:對ext系列文件系統進行磁盤檢查

e2fsck [OPTIONS]  device

-y:對所有問題自動回答爲yes;

-f:即使文件系統處於clean狀態,也要強制進行檢測;

4. fsck:check and repair a Linux file system

-t fstype:指明文件系統類型;

fsck -t ext4 = fsck.ext4

-a:無須交互而自動修復所有錯誤;

-r:交互式修復;

5. tune2fs

tune2fs命令:查看或修改ext系列文件系統的某些屬性

adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems;

注意:塊大小創建後不可修改;

tune2fs [OPTIONS] device

-l:查看超級塊的內容;

修改指定文件系統的屬性:

-j:ext2 --> ext3;

-L LABEL:修改卷標;

-m #:調整預留空間百分比;

-O [^]FEATHER:開啓或關閉某種特性;

-o [^]mount_options:開啓或關閉某種默認掛載選項

acl

^acl

6. 查看分區超級塊的信息

[root@liuqing ~]# tune2fs -l /dev/sda3

tune2fs 1.42.9 (28-Dec-2013)

Filesystem volume name:   Mydata

Last mounted on:          <not available>

Filesystem UUID:          63a8e0d5-27b4-4dd6-9049-3f11acb620b7

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash

Default mount options:    user_xattr acl

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              655360

Block count:              5242880

Reserved block count:     209715

Free blocks:              5121266

Free inodes:              655349

First block:              0

Block size:               2048

Fragment size:            2048

Group descriptor size:    64

Reserved GDT blocks:      512

Blocks per group:         16384

Fragments per group:      16384

Inodes per group:         2048

Inode blocks per group:   256

Flex block group size:    16

Filesystem created:       Thu Nov 28 11:12:37 2019

Last mount time:          n/a

Last write time:          Thu Nov 28 11:12:38 2019

Mount count:              0

Maximum mount count:      -1

Last checked:             Thu Nov 28 11:12:37 2019

Check interval:           0 (<none>)

Lifetime writes:          65 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:      e2e55f5f-e05f-431c-84b9-a734d29b078f

Journal backup:           inode blocks


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章