磁盤管理

一、知識整理

1、每個扇區:512字節;每個柱面:256個磁頭*63個扇區*512字節,大概為8M。centos6中分區使用起始結束柱面;centos7中分區使用起始結束扇區。EBR:擴展分區的第一個扇區。

2、MBRmaster root record,1982年,使用32位表示扇區數,分區不超過2T。其中,一共512bytes字節,446bytesboot loader,64bytes表示分區表,其中16bytes標識一個分區,剩余2bytes為有效性標記55AA。

3、查看前512長度的數據編碼:

[root@localhost mnt]# hexdump -C -n 512 /dev/sdb
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  00 00 00 00 00 00 00 20  |............... |
000001c0  21 00 83 8a 71 19 00 08  00 00 00 00 40 01 00 8a  |!...q.......@...|
000001d0  72 19 83 a0 82 1e 00 08  40 01 00 00 40 00 00 a0  |r.......@...@...|
000001e0  83 1e 83 2b 8a a1 00 08  80 01 00 00 20 00 00 00  |...+........ ...|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

4、BIOS只支持MBR;GPT使用UEFI支持,UEFI,統一擴展固件接口。VFS虛擬文件系統。

 fdisk也支持GPT,默認創建為MBR。gptGUID patition table,支持128個分區,64位,若扇區為512K則能支持8Z,若為4M則支持64Z最大空間。

5、查看分區完成信息的三種方法:lsblk,顯示塊設備;df -lh;cat  /proc/partitions。

6、如今的磁盤標識統一為sd*,dev/vda為虛擬磁盤。

7、LBAlogical block address:邏輯區塊地址,數據以塊存儲,是一種尋址模式。塊大小可以指定,一般為1024,2048,40964K對齊)。

  CHScylinder柱面,heads磁頭,sector扇區;CHS尋址模式,是fdisk在分區期間所需的磁盤信息,磁盤信息三維。

8、塊組的起始位置group 0,超級塊super block,用于存儲元數據及各種信息,一般為1、3、5、7、9塊組有備份。

9、tune2fs 只能查看ext文件系統的分區,xfs類型的文件系統更改卷標可以使用mkfs.xfsmount命令。

10、查看掛載的三種方式:mount;cat /etc/mtabcat /proc/mounts

11、根據uuid查找是哪個分區:mount -U UUID /dev/*

    查看掛載情況

findmnt  MOUNT_POINT

查看正在訪問指定文件系統的進程

lsof  MOUNT_POINT

fuser  -v MOUNT_POINT

終止所有正在訪問指定的文件系統的進程

fuser -km MOUNT_POINT

[root@localhost mnt]# findmnt /dev/sdc3
TARGET    SOURCE    FSTYPE OPTIONS
/mnt/sdc3 /dev/sdc3 ext4   rw,nodev,noatime,data=ordered
[root@localhost mnt]# lsof /dev/sdc3
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    11169 root  cwd    DIR   8,35     4096    2 /mnt/sdc3

12、在已經分區并且已掛載中某個分區的磁盤設備上創建新分區,內核可能在創建完成后無法直接識別。則需要通知內核強制重讀分區:

centos5partprobe

centos6:添加分區partx -a

刪除分區 partx -d –nr M:N /devsd#

centos7partprobe

13、文件系統種類總結:

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

光盤:iso9660

集群文件系統:nfs、cifs

內核級分布式文件系統:ceph

windows的文件系統:vfat、ntfs

偽文件系統:proc、sysfs、tmpfs、hugepagefs

Unix的文件系統:UFS/FFS/JFS

交換文件系統:swap

用戶空間的分布文件系統:mogilefs,moosefs、glusterfs

14、dumpe2fs -h 查看超級塊信息(分組信息),分區用分組管理

df 文件系統空間占用等信息的查看工具

-H 按照1000進制顯示

-T 文件系統類型

-h 易讀格式

-i 顯示inode使用

-P Posix兼容格式輸出

15、findfs查找分區:

[root@localhost ~]# findfs LABEL=/dev/sdc2
/dev/sdc2
[root@localhost ~]# findfs UUID=2015-12-09-22-36-30-00
/dev/sr0

16、eject彈出光驅,eject -t回收彈出的光驅

17、創建ISO文件:cp  /dev/cdrom  /testdir/centos7.iso

mkisofs  -r  -o  /root/etc.iso  /etc

刻錄光盤:wodim  -v  -eject  centos.iso

18、getenforce查看selinux的狀態

setenforce 0  關閉selinux

二、命令詳解及事例

1、mknod [option]… NAME TYPE [MAJOR MINOR]

創建塊設備或字符設備的特殊文件:

-m MODE 創建后的設備文件的訪問權限

[root@localhost mnt]# mknod cdrom b 11 0 
[root@localhost mnt]# ls
cdrom  media  sdb1  sdb2  sdb3  sysroot
[root@localhost mnt]# ll
總用量 16
brw-r--r--  1 root root 11, 0 8月  24 21:03 cdrom

2、lsmodlist modules

用來顯示文件、proc/modules的信息,也就是顯示當前內核模塊裝載的模塊。執行命令會列出所有已載入系統的模塊。例如:顯示ext4被使用了幾次。

[root@localhost mnt]# lsmod
Module                  Size  Used by
coretemp               13435  0 
kvm_intel             162153  0 
kvm                   525259  1 kvm_intel
ext4                  578819  4

3、lsoflist open files:列出當前系統打開文件的工具,常用用法是查找應用程序打開的文件名稱和數目??捎糜诓檎页瞿硞€特定應用程序將日志數據記錄到何處或者正在跟蹤某個問題。

-a 表示兩個參數都必須滿足時才顯示結果

filename 顯示打開指定文件的所有進程

-g gid 顯示歸屬gid的進程情況

-i[4|6] [protocol] [@hostname|hostaddr] [:service|port]

46 :ipv4 or ipv6

protocol :tcp or udp

hostname :internet host name

hostaddr :ipv4dizhi

service :/etc/service中的service name可以多個

port :端口號

[root@localhost mnt]# lsof -i :22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1229 root    3u  IPv4  19337      0t0  TCP *:ssh (LISTEN)
sshd    1229 root    4u  IPv6  19339      0t0  TCP *:ssh (LISTEN)

4、fdisk磁盤管理命令,centos6默認分區后沒有aclattr屬性。

5、創建文件系統的工具mkfsmake file system。

mkfs -t FS_TYPE /dev/DEVICE

-L  設定卷標

mkfs.FS_TYPE /dev/DEVICE

.ext234

.xfs

.btrfs

.vfat

-f 若原來有文件系統,強制執行

[root@localhost ~]# mkfs -t xfs -f /dev/sdc1 
meta-data=/dev/sdc1    isize=256    agcount=4, agsize=65536 blks
         =     sectsz=512   attr=2, projid32bit=1
         =        crc=0        finobt=0
data     =        bsize=4096   blocks=262144, 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

6、檢測及修復文件系統的工具fsck

因進程意外中止或系統崩潰等原因導致寫入操作非正常終止時,可能會造成文件損壞;建議離線進行。

-t fstype 指明文件系統類型

fsck -t ext4

-a 無需交互而自動修復所有錯誤

-r 交互式修復

ext系列文件系統的專用工具

e2fsck [] device

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

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

[root@localhost ~]# fsck /dev/sdc2
fsck,來自 util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdc2: clean, 11/65536 files, 12644/262144 blocks
[root@localhost ~]# fsck.ext4 /dev/sdc2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdc2: clean, 11/65536 files, 12644/262144 blocks

7、調整ext系列文件系統的特性tune2fs

塊大小創建后不可修改

-l 列出超級塊的內容:塊大小默認4096b

-j ext2升級為ext3,即啟用journal日志功能:tune2fs -j /dev/sda2

-L 修改卷標

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

-O 開啟某種特性Feature  – ^O取消

-o [^]mount_option  開啟或關閉某種掛載選項mount option

acl  ^acl

[root@localhost ~]# tune2fs -o ^acl -O has_journal -m 1 /dev/sdc2 
tune2fs 1.42.9 (28-Dec-2013)
Setting reserved blocks percentage to 1% (2621 blocks)

8、blkid獲取文件系統類型及UUID;塊設備屬性信息查看

Linux下可以使用blkid命令對查詢設備上所采用文件系統進行查詢,blkid主要用來對系統的塊設備所使用的文件系統類型、LABEL、UUID等信息進行查詢,要使用這個命令必須安裝e2fsprogs軟件包。直接使用blkid可以列出當前系統所有已經掛載文件系統類型。

[root@localhost mnt]# blkid
/dev/sda1: UUID="595c35b0-15d0-46bb-a63a-b1b50f9202fd" TYPE="xfs" 
/dev/sda2: UUID="diptS0-7Z1c-6unD-IaAW-UCb7-ocJQ-XGUkfk" TYPE="LVM2_member" 
/dev/sda5: UUID="2daf41fb-a9be-4a6b-8f0a-05d3a40eb40c" TYPE="swap" 
/dev/sr0: UUID="2015-12-09-22-36-30-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="88abbafb-5460-4760-b699-ea2df801348f" TYPE="xfs"

9、創建交換分區:命令:mkswap swapon swapoff

mkswap -f給文件設置swap時使用-f選項強制執行。

啟用swapon

swap [] []

-a 定義在/etc/fstab文件中的所有swap設備

禁用swapoff DEVICE

步驟如下:首先創建一個分區或文件,tswap類型;然后

[root@localhost etc]# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old ext4 signature.
正在設置交換空間版本 1,大小 = 1048572 KiB
無標簽,UUID=e07f645f-79e7-4686-8a93-99e74335c944

使用/etc/fstab掛載或臨時開啟swapon

[root@localhost etc]# swapon /dev/sdb1

卸載時先swapoff,然后再操作。

在掛載時可以給swap指定一個032767的優先級,如果用戶沒有指定,那么系統會自動給swap指定一個優先級,這個優先級從-1開始逐漸減1。用戶指定的正數優先級永遠高于系統的自動的負數優先級??梢允褂妹?/span>swapon -p #或直接編輯fstab文件在defaults后面加pri=#。優先級查看:/proc/swaps

[root@localhost etc]# cat /proc/swaps 
Filename    Type  Size Used Priority
/dev/dm-1 partition 1953788 0 -1

按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、usb等等),掛載點通常在/media/mnt下。

10、dd命令:convert and copy afile

用法:dd if=/PATH/FROM/SRC of=/PATH/TO/DEST

bs=#  block size,復制單元大小

count=#  復制所少個bs

of=FILE 寫到所命名的文件而不是到標準輸出

if=FILE 從所命名文件讀取而不是從標準輸入

bs=  指定塊大小

ibs= 一次讀sizebyte

obs= 一次寫sizebyte

cbs= 一次轉化sizebyte

skip=blocks 從開頭忽略blocksibs大小的塊

忽略輸入文件即zero的前多少內容

seek=blocks 從開頭忽略blocksobs大小的塊

忽略輸出到的文件的前多少內容

count=n 只拷貝n個記錄

conv=Conversion…用指定的參數轉換文件

ascii 轉換EBCDICASCII

ebcdic 轉換ASCIIEBCDIC

block 轉換為長度是cbs的記錄,不足部分用空格填充

unblock 替代cbs長度的每一行尾的空格為新行

lcase 把大寫字符轉換為小寫字符

ucase 把小寫字符轉換為大寫字符

swab 交換輸入的每對字節

noerror 出錯時不停止

notrunc 不截短輸出文件

只對文件有效,對設備無效

sync 把每個輸入塊填充到ibs個字節,不足部分用null字符補齊

磁盤拷貝:dd if=/dev/sda of=/dev/sdb

備份MBRdd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

破壞MBR中的bootloaderdd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446

備份:dd if=/dev/sdx of=/dev/sdy將本地的sdx整盤備份到sdy

dd if=/dev/sdx of=/path/to/image 將全盤數據備份到指定路徑的image文件

dd if=/dev/sdx | gzip > /PATH/TO/image.gz 備份數據并壓縮到指定位置

恢復:dd if=/PATH/TO/image of=/dev/sdx將備份文件恢復到指定盤

gzip -dc /PATH/TO/image.gz | dd of=/dev/sdx將壓縮的備份文件恢復到指定盤

拷貝內存資料到硬盤 dd if=/dev/mem of=/root/mem.bin bs=1024

將內存里的數據拷貝到root目錄下的mem.bin文件

從光盤拷貝iso鏡像:dd if=/dev/cdrom of=/root/cd.iso

銷毀磁盤數據:dd if=/dev/urandom of=/dev/sda1

利用隨機數據填充硬盤,在某些必要場合可以用來銷毀數據,執行此操作后,/dev/sda1將無法掛載,創建和拷貝操作無法執行。

得到最恰當的block size

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file

dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳block size 大小。

測試硬盤讀寫速度:

dd if=/root/1Gb.file bs=64K | dd of=/dev/null

dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

修復磁盤:

dd if=/dev/sda of=/dev/sda

當硬盤較長時間放置不使用時,磁盤會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可能導致IO錯誤。當這種情況影響到磁盤的第一個扇區時,可能導致硬盤報廢。

11、uuidgen隨機創建一個uuid的值

[root@localhost ~]# uuidgen
83abd3df-deb2-4c39-a43f-cff94a1f9c2b

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

mke2fs [] device

-t {ext234}

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

-b 指定文件系統的塊大小{1024/2048/4096}

-L 指定卷標

-j 創建有日志功能的文件系統;ext2ext3的區別在于有無日志模塊

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

-i # 指明inode與字節的比率,即每多少個字節一個inode。

比率適中即可,inode過多占用空間并且無法用盡。

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

-O 啟用某種特性

–  ^O關閉某種特性

mke2fs -t ext3 /dev/sdc2 -L /dev/sdc2 -m 3 -O has_journal

-m # 指定給管理員預留的空間,為百分比

[root@localhost ~]# mke2fs -t ext3 /dev/sdc2 -L /dev/sdc2 -m 3

13、e2lable 卷標的查看與設定,格式化之后修改,管理ext系列

查看:e2label device

設定:e2label device LABEL

14、mount命令:mount [-nrw] [-t vfstype] [-o option] device dir

-a 掛載/etc/fstab中的所有文件系統

-r 只讀掛載

-w 讀寫掛載read and write

-n 默認情況下;設備掛載或卸載的操作會同步更新至etc/mtab文件中,-n用于禁止此特性

-t vfstype 指明要掛載的設備上的文件系統類型;多數情況下可以省略;此時mount會通過blkid來判斷要掛載的設備文件系統類型。

-L 掛載時以卷標指明設備,用卷標指定設備

mount -L LABEL DIR

-U UUID指明設備

-B 綁定目錄到另一個目錄上,與軟鏈接相似,但并不是軟鏈接文件

此設置查看時只能使用mount命令查看

-o options 掛載選項,多個選項用逗號隔開,可以在/etc/fstab上直接定義。

sync/async 同步/異步操作

atime/noatime 文件或目錄在被訪問時是否更新其訪問時間戳

diratime/nodiratime 目錄在被訪問時是否更新其時間戳

remount 重新掛載

mount -o remount 重新掛載

acl 支持使用facl功能

mount -o acl DEVICE DIR

tune2fs -o acl DEVICE

-ro 只讀 -rw 讀寫

dev/nodev 此設備上是否允許創建設備文件

exec/noexec 是否允許運行此設備上的程序文件

auto/noauto 是否允許自動掛載

user/nouser 是否允許普通用戶掛載此文件系統

suid/nosuid 是否允許程序文件上的suidsgid特殊權限生效

defaults 默認,相當于rw,suid,dev,exec,autonouser,async

   關于fstab掛載定義:

轉儲頻率:0不備份;1每天轉儲;2每隔一天轉儲

自檢次序:0不自檢;1首先自檢,一般只有rootfs才用1

當自檢不為0時,若掛載選項寫錯,開機自檢不能正常進入系統,進入修復,輸入root密碼后重新掛載,使用mount -o rw,remount / ,然后編輯/etc/fstab,將錯誤改正或注釋,然后進入系統,成功修復。centos7中可以直接進入。

[root@localhost mnt]# mount -n -o async,noatime,acl,nodev,nouser,suid /dev/sdc3 /mnt/sdc3

15、parted命令:分區命令,操作都是實時生效,可以支持MBRGPT;

parted DEVICE進入交互模式;

直接使用命令分區

[root@localhost ~]# parted /dev/sdc print
錯誤: /dev/sdc: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)                                   
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 
[root@localhost ~]# parted /dev/sdc mklabel gpt
信息: You may need to update /etc/fstab.
[root@localhost ~]# parted /dev/sdc mklabel gpt
警告: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. 
Doyou want to continue?
是/Yes/否/No? y
信息: You may need to update /etc/fstab.
[root@localhost ~]# parted /dev/sdc mkpart primary 1 1024 
信息: You may need to update /etc/fstab.
[root@localhost ~]# parted /dev/sdc print              
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name     標志
 1      1049kB  1024MB  1023MB               primary
[root@localhost ~]# parted /dev/sdc rm 1 
信息: You may need to update /etc/fstab.

16、gdisk善于管理GPT分區,過程類似于fdisk

三、課后練習見后一篇

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

(0)
SilencePavilionSilencePavilion
上一篇 2016-08-29
下一篇 2016-08-29

相關推薦

  • tom貓—–(Tomcat詳解)

    目錄 安裝tomcat tomcat目錄結構及配置文件構成以及主配置文件server.xml ,tomcat中的組件 實現反代tomcat的方法 nginx+tomcat cluster http(mod_porxy_http)+tomcat cluster http(mod_porxy_ajp)+tomcat cluster http(mod_jk)+to…

    2017-11-16
  • 1017作業

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正 ##先分析硬件時間不對還是系統時間不對,如果是系統時間不對: [root@localhost ~]# hwclock -w [root@localhost ~]#  ##如果是硬件時間不對: [root@localhost ~]#…

    Linux干貨 2016-10-18
  • zabbix報警信息提取

    zabbix報警信息提取     在日常的監控中,我們除了日常的zabbix操作外,我們有的時候還涉及到與其他公司進行數據對接。由于別的公司的數據對接很多時候并不是按照zabbix的數據結構(尤其是大型廠家,或是專業監控廠家,并不會直接使用zabbix,多數是自己開發或是對其他監控軟件進行二次開發之類),在這種需求基礎…

    Linux干貨 2015-12-19
  • 磁盤管理

    CHS cylinder-head-sector cylinder柱面=track*head=512*63*256=8M  磁盤分區 為什么是分區? ? 優化I/O 性能 ? 實現磁盤空間配額限制 ? 提高修復速度 ? 隔離系統和程序 ? 安裝多個OS ? 采用不同文件系統   MBR:使用32位表示扇區數量,按每扇區512字節計算,每個…

    Linux干貨 2016-08-29
  • egrep及文本處理工具十三道實例

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。 4、復制/etc/sk…

    2018-03-20
  • Linux文件管理及bash腳本特性

    馬哥教育網絡班23期+第2周課程練習 Linux文件管理及bash腳本特性 概述,經過前三天的學習,想必我們已經對Linux 有了一個初步的了解,接下來這講我們要講述一下Linux至關重要的文件管理和bash腳本特性等知識要點 一、Linux 文件管理 1.1 原理概述   文件管理對于Linux系統來說至關重要,因為Linux 的哲學思想就是一切…

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