天天看點

Centos 磁盤管理(一)

檢視支援的檔案系統:

/lib/modules/核心版本/kernel/fs

cat /proc/filesystems

熱挂載的磁盤在不重新開機的情況下,是不可以使用lsblk看到的,可以使用以下指令掃描發現

#echo '- - -' > /sys/class/scsi_host/host2/scan

可以看分區前512位元組數

hexdump -C -n 512 /dev/sda

備份指定扇區

#dd if=/dev/sda of=/app/mbr bs=1 count=512

備份指定扇區内容

#dd if=/dev/sda of=mbr64 bs=1 count=64 skip=446 seek=446

恢複分區表

#dd if=mbr of=/dev/sda bs=1 count=512

可以将一個分區表備份檔案恢複至一個新的磁盤空間上

UUID編号生成

#uuidgen

20383f4d-0201-49c1-aa25-49934bcccd9f

檢視磁盤UUID或者分區檔案系統

blkid

#blkid

/dev/sr0: UUID="2017-09-06-10-53-42-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"

/dev/sda1: UUID="2d41b82c-dd7f-46c1-800e-f9ae533ecb48" TYPE="xfs"

/dev/sda2: UUID="d920bdb4-e2bf-48e9-b7b5-6657c58bfb3e" TYPE="xfs"

UUID隻有重新格式化磁盤分區的時候才會發生變化

#xfs_info 檢視xfs格式的super block,必須先挂載

super block:

Filesystem volume name

/app/sdb2

卷标

Last mounted on

最後挂載點

Filesystem UUID

ac3c758c-5f46-4839-8c76-57065ece252b

UUID資訊

Filesystem magic number

0xEF53

頭部資訊描述

Filesystem revision #

1 (dynamic)

Filesystem features

has_journal ext_attr resize_inode

dir_index filetype needs_recovery

 extent 64bit flex_bg sparse_super

large_file huge_file uninit_bg

dir_nlink extra_isize

分區支援的特性

Filesystem flags

signed_directory_hash 

Default mount options

user_xattr acl

挂載選項。使用指令

#tune2fs -o acl /dev/sdb2

Filesystem state

clean

正常時顯示此字元串

Errors behavior

Continue

Filesystem OS type

Linux

Inode count

65536

本分區Inode總數

Block count

262144

本分區BlockU總數

Reserved block count

13107

本分區保留的Inode總數

Free blocks

249189

本分區目前可用的BlockU總數

Free inodes

65525

First block

Block size

4096

Fragment size

Group descriptor size

64

Reserved GDT blocks

127

Blocks per group

32768

Fragments per group

Inodes per group

8192

Inode blocks per group

512

Flex block group size

16

Filesystem created

Sun Dec  3 22:24:29 2017

檔案系統建立時間

Last mount time

Sun Dec  3 22:27:33 2017

檔案系統最後挂載時間

Last write time

Sun Dec  3 22:29:06 2017

檔案系統最後寫入時間

Mount count

1

Maximum mount count

-1

Last checked

Sun Dec  3 22

Check interval

0 (<none>)

Lifetime writes

33 MB

Reserved blocks uid

0 (user root)

Reserved blocks gid

0 (group root)

First inode

11

Inode size

Required extra isize

28

Desired extra isize

Journal inode

8

Default directory hash

half_md4

Directory Hash Seed

c97fac6c-5fbe-4a4c-96f2-196e3164fa96

Journal backup

inode blocks

一、CentOS 7磁盤及檔案系統特性

   在CentOS 7,不管是IDE硬碟還是SATA硬碟,在linux裡面的硬碟裝置檔案辨別都為/dev/sd[a-z]。(當然這一特性在CentOS 6中就已經實作)

   CentOS 7預設使用的檔案系統為xfs。

二、磁盤分區管理工具

   磁盤分區管理工具有很多,在CentOS 7上也支援傳統的fdisk工具,還有parted,sfdisk,本文以fdisk介紹淺談在Linux中磁盤超出2T的管理方式

fdisk指令:

       fdisk -l [-u] [device...]

1、檢視分區表資訊

       fdisk -l [device]  # 不加任何裝置,預設檢視所有

fdisk -l /dev/sda

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 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

Disk identifier: 0x000b0d11

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048     1026047      512000   83  Linux

/dev/sda2         1026048   251658239   125316096   8e  Linux LVM

 2、管理分區

fdisk提供了一個互動式的借口來管理分區,他有許多子指令,分别實作不同管理功能;特點是在記憶體中完成,不直接同步到硬碟上,可通過w來儲存。

常用指令:

n:建立新分區

d:删除已有分區

t:修改分區類型

l:檢視所有已經ID

w:儲存并退出

q:不儲存并退出

m:檢視幫助資訊

p:顯示現有分區資訊

注意:使用w儲存退出後,核心不會立即識别新分區,此處如果有需要,可以使用指令使核心強制讀取。

    檢視已經讀取分區清單:

2

3

4

5

6

7

9

10

12

# cat /proc/partitions 

major minor  #blocks  name

   8       16   20971520 sdb

   8       17    5242880 sdb1

   8       18    5242880 sdb2

   8        0  125829120 sda

   8        1     512000 sda1

   8        2  125316096 sda2

  11        0    7413760 sr0

 253        0   52428800 dm-0

 253        1    2097152 dm-1

 253        2   70721536 dm-2

通知核心強制重讀磁盤分區表:

Centos 6

增加分區時使用

# partx -a /dev/sdb

删除分區時使用

# partx -d --nr 6-7 /dev/sdb

Centos 7

# partprobe /dev/sda

13

14

15

# partx -a /dev/sdb

partx: /dev/sdb: error adding partitions 1-4

   8       19    5242880 sdb3

   8       20          1 sdb4

三、檔案系統管理

建立檔案系統,就是對分區進行格式化,格式化分為:低級格式化(分區之前進行,劃分磁道)、進階格式化(分區之後對分區進行,建立檔案系統),一般低級格式化都有硬碟廠商來完成。

檔案系統管理工具:

A、ext系列檔案系統管理工具:

1、建立檔案系統工具

mkfs系列(mkfs.ext2, mkfs.ext3, mkfs.ext4)

# mkfs系列的使用方法比較簡單,沒有過多參數

mke2fs:

使用格式: 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

2、卷标檢視與設定

e2label

# e2label /dev/sdb2

MYDATA

# e2label /dev/sdb2 DATA

DATA

3、檢查及修複檔案系統工具

e2fsck

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

-f:即使檔案系統處于clean狀态,也要強制進行檢測;

# e2fsck /dev/sdb2

e2fsck 1.42.9 (28-Dec-2013)

DATA: clean, 11/655360 files, 204238/10484736 blocks

# e2fsck -yf /dev/sdb2

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

DATA: 11/655360 files (0.0% non-contiguous), 204238/10484736 blocks

fsck:

-t fstype:指明檔案系統類型;

        fsck -t ext4 = fsck.ext4

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

-r:互動式修複;

# fsck -t ext4 /dev/sdb1

fsck from util-linux 2.23.2

/dev/sdb1: clean, 11/196608 files, 31036/786432 blocks

4、檢視修改ext系列檔案的某些屬性

dumpe2fs:           

 # dumpe2fs /dev/sdb1

tune2fs:

指令格式:tune2fs [OPTIONS] device

常用參數:

-l:檢視超級塊的内容;    

#tune2fs /dev/sdb2 -l   檢視ext格式的super block

#dumpe2fs /dev/sdb1 -h  檢視ext格式的super block    

添加ACL功能,Centos 6 預設在系統安裝好之後手工添加的分區沒有ACL功能

#tune2fs -o acl /dev/sdb2,需要重新挂載或重新啟動系統才生效

# tune2fs -l /dev/sdb1

-j:啟用日志系統,在ext3以上預設啟用,此處僅針對ext2檔案系統

-L LABEL:修改卷标;

# e2label /dev/sdb1

# tune2fs -L TESTDATA /dev/sdb1

tune2fs 1.42.9 (28-Dec-2013)

# blkid /dev/sdb1

/dev/sdb1: LABEL="TESTDATA" UUID="2ca4b66c-3e37-460d-a300-022e916413a8" TYPE="ext4"

-m #:調整預留白間百分比,預設為5%;

# 此操作一般在硬碟比較大的場景中适用

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

 -o [^]mount_options:開啟或關閉某種預設挂載選項

B、xfs檔案系統管理工具:

建立檔案系統工具:

1、mkfs.xfs    

# mkfs.xfs -f /dev/sdb1

meta-data=/dev/sdb1              isize=256    agcount=4, agsize=655360 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0        finobt=0

data     =                       bsize=4096   blocks=2621440, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

修複檔案系統工具:

2、fsck

# fsck -t xfs -a /dev/sdb1

/sbin/fsck.xfs: XFS file system.

本文轉自 ljpwinxp 51CTO部落格,原文連結:http://blog.51cto.com/191226139/2051183

繼續閱讀