class14磁盤管理(一)

一、硬盤基礎知識及分區類型

1、磁盤結構

設備文件

I/O Ports: I/O 設備地址
一切皆文件:   open(), read(), write(), close()
設備類型:
塊設備:block,存取單位“塊”,磁盤
字符設備:char,存取單位“字符”,鍵盤
設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信
設備號碼:
主設備號:major number, 標識設備類型
次設備號:minor number, 標識同一類型下的不同設備

硬盤接口類型

并行:
    IDE :133MB/s
    SCSI :640MB/s
 串口:
    SATA :6Gbps
    SAS :6Gbps
    USB :480MB/s
 rpm: rotations
     per minute

設備文件

磁盤設備的設備文件命名:/dev/DEV_FILE     IDE: /dev/hd    IDE: 
    第一個IDE口:主、從        /dev/hda, /dev/hdb
    第二個IDE口:主、從        /dev/hdc, /dev/hdd
        
SCSI, SATA, SAS, USB: /dev/sd
   不同設備:a-z       /dev/sda, /dev/sdb, ...
   同一設備上的不同分區:1,2, .../dev/sda1, /dev/sda5

硬盤存儲術語

head:磁頭
track:磁道
cylinder: 柱面
secotr:  扇區,512bytes
     
CHS 尋址   512*63*1024*256LBA尋址

2、磁盤分區

磁盤分區的優勢:
              
    ? 優化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 個邏輯分區)

GPT分區

GPT:GUID patition table  支持128個分區使用64位,支持8Z(512Byte/block)64Z (4096Byte/block)
          
使用128位UUID區表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC 校驗位
          
UEFI ( 統一擴展固件接口) 硬件 支持GPT,使操作系統啟動

GPT分區結構

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

二、管理分區

列出塊設備
blkid

分區工具fdisk和gdisk

? fdisk  創建MBR 分區,也支持GPT,對于一塊硬盤,最多只能管理15分區
? gdisk  創建GPT分區
         
fdisk /dev/sdb
gfisk /dev/sdb  類fdisk  的GPT 分區工具
# fdisk -l [-u] [device...]      查看磁盤及分區信息
子命令:
    p  分區列表
    t  更改分區類型    n  創建新分區    d  刪除分區
    w  保存并退出
    q  不保存并退出

同步分區表

查看內核是否已經識別新的分區:
# cat /proc/partitions
通知內核重新讀取硬盤分區表
centos 6
    新增分區用
    partx -a -n M:N /dev/DEVICE
    kpartx -a /dev/DEVICE -f: force
    刪除分區用
    partx -d -n M:N /dev/DEVICE
    centos6: –nr N-M
    CentOS 5,7: 使用partprobe
   partprobe [/dev/DEVICE]

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

三、文件系統及管理

文件系統類型

Linux 文件系統: ext2, ext3, ext4, xfs (SGI ), btrfs(Oracle ), reiserfs, jfs (AIX ), swap光盤: :iso9660
Windows :fat32, ntfsUnix: FFS (fast ), UFS (unix ), JFS2
網絡文件系統:NFS, CIFS
集群文件系統:GFS2, OCFS2 (oracle) 
分布式文件系統: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

創建文件系統

mkfs 命令:
(1) # mkfs.FS_TYPE /dev/DEVICE
    ext4
    xfs
    
    centos6   
    1、添加xfs需要的用戶組    #useradd mockbuild
    2、安裝xfs相關包,掛載xfs內核    # yum install xfsprogs kmod-xfs xfsdump xfsprogs-devel
    # modprobe xfs
    # mkfs.xfs -f FS_type
    centos7    # mkfs.xfs -f FS_type
    
    btrfs
    vfat
(2) # mkfs -t FS_TYPE /dev/DEVICE  格式化分區
     -L 'LABEL':  設定卷標
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 :關閉指定特性

文件系統標簽

指向設備的另一種方法
與設備無關
blkid :塊設備屬性信息查看
blkid [OPTION]... [DEVICE]
    -U UUID:  根據指定的UUID 來查找對應的設備
    -L LABEL:根據指定的LABEL 來查找對應的設備
e2label :管理ext 系列文件系統的LABEL
# e2label DEVICE  查看分區卷標# e2label DEVICE [LABEL]
findfs :查找分區
findfs [options] LABEL=<label>
    findfs [options] UUID=<uuid>
tune2fs (塊大小不可修改)
tune2fs :重新設定ext 系列文件系統可調整參數的值
    -l :查看指定文件系統超級塊信息;super block    -L 'LABEL' :修改卷標    -m # :修預留給管理員的空間百分比    -j:  將ext2 升級為ext3    -O:  文件系統屬性啟用或禁用, –O ^has_journal    -o:  調整文件系統的默認掛載選項,–o ^acl    -U UUID:  修改UUID號 
    
    生成UUID號
    [root@6 etc]# uuidgen
    c9fcf00a-6404-4a1c-97dd-8341e137ae99
            
dumpe2fs:
    -h:查看超級塊信息(分組信息),分區用分組管理

文件系統檢測和修復

常發生于死機或者非正常關機之后
掛載為文件系統標記為“dirty” ”
fsck: File System Check
fsck.FS_TYPE
    fsck -t FS_TYPE
    -a:  自動修復錯誤    -r:  交互式修復錯誤注意: FS_TYPE 一定要與分區上已經文件類型相同;
e2fsck :ext 系列文件專用的檢測修復工具
-y :自動回答為yes           -f :強制修復

四、掛載mount

掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為
            
卸載:為解除此關聯關系的過程
             
把設備關聯掛載點:mount Point
       mount
卸載時:可使用設備,也可以使用掛載點
       umount
掛載點下原有文件在掛載完成后會被臨時隱藏
               
掛載點目錄一般為空

mount 命令掛載文件系統

掛載方法:mount DEVICE MOUNT_POINT
            mount:通過查看/etc/mtab文件顯示當前已掛載的所有設備
       
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device :指明要掛載的設備;
    (1)  設備文件:例如/dev/sda5
    (2)  卷標:-L 'LABEL',  例如 -L 'MYDATA'
    (3) UUID, -U 'UUID'如 :例如 -U '0c50523c-43f1-    45e7-85c0-a126711d406e'
    (4)  偽文件系統名稱:proc, sysfs, devtmpfs, configfs
    dir :掛載點
        事先存在;建議使用空目錄
        進程正在使用中的設備無法被卸載

mount 常用命令選項

-t vsftype:指定要掛載的設備上的文件系統類型-r: readonly ,只讀掛載-w: read and write,  讀寫掛載-n:  不更新/etc/mtab,相當于#mount-a :自動掛載所有支持自動掛載的設備( 定義在了/etc/fstab文件中,且掛載選項中有auto 功能)-L 'LABEL':以卷標指定掛載設備[root@6 testdir]# mount -L  MYDATE /media/sdd5
       
-U 'UUID':  以UUID 指定要掛載的設備-B, --bind:綁定目錄到另一個目錄上    
            
 [root@6 sdd2]# mount -B /media/CentOS_6.8_Final /media/sdd2
            
查看內核追蹤到的已掛載的所有設備:
 # cat /proc/mounts
 # mount
 # cat /etc/mtab
 
 -o: 掛載本地回環設備   #mount -o loop /PATH/TO/SOME_FILE MOUNT_POINT

mount 掛載選項

-o options:(掛載文件系統的選項) ,多個選項使用逗號分隔
async:異步模式
    sync :同步模式, 內存更改時,同時寫磁盤
    atime/noatime:包含目錄和文件
    diratime/nodiratime:目錄的訪問時間戳    auto/noauto:是否支持自動掛載, 是否支持-a 選項
    exec/noexec:是否支持將文件系統上運行應用程序
    dev/nodev:是否支持在此文件系統上使用設備文件
       
    mknod sss b 8 1    
    建立設備文件
    
    suid/nosuid:是否支持suid 和sgid權限
    remount :重新掛載
    ro:只讀
    rw:讀寫
    user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載
    
    [root@6 media]# mount -o nosuid /dev/sdd1 /media/sdd1
         
    acl:啟用此文件系統上的acl 功能
    noacl 
Defaults :相當于rw, nosuid, dev, exec, auto, nouser, async

卸載命令

查看掛載情況:
#findmnt MOUNT_POINT
查看正在訪問指定文件系統的進程:
#lsof MOUNT_POINT    #fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程:
# fuser -km MOUNT_POINT
    卸載:    # umount DEVICE
    # umount MOUNT_POINT

積累應用

1、創建mbr,gpt磁盤分區表
mbr分區 
   [root@6 a]# fdisk /dev/sdd
   Command (m for help): n
   Partition number (1-4): 1
   First cylinder (1-2610, default 1): 1
   Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +5G
             gpt分區
    [root@6 a]# gdisk /dev/sdc
    Command (? for help): n
    Partition number (1-128, default 1): 1
    First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 
    Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +5G
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 
    Changed type of partition to 'Linux filesystem'
2、創建xfs、ext4、ext3、vfat分區
[root@6 a]# mkfs.xfs -f /dev/sdd1
    [root@6 a]# mkfs.ext4  /dev/sdd2
    [root@6 a]# mkfs.ext3  /dev/sdc1
    [root@6 a]# mkfs.vfat  /dev/sdc2
    [root@6 a]# blkid
    /dev/sda1: UUID="598997b7-f4a0-4296-9740-f1221ecf0c6b" TYPE="ext4" 
    /dev/sda2: UUID="31bb0614-7b9f-4856-9518-b5cbc03b34ce" TYPE="ext4" 
    /dev/sda3: UUID="df6f5cfe-b43c-4e5d-9811-7af3f33ede54" TYPE="ext4" 
    /dev/sda5: UUID="b92fd434-da1a-4a6e-bea0-87c6d628898a" TYPE="swap" 
    /dev/sdd1: UUID="446cc786-d9d6-414a-951f-1024f2ea532d" TYPE="xfs" 
    /dev/sdd2: UUID="6c80a99d-b436-4411-821e-bb3903ffc67a" TYPE="ext4" 
    /dev/sdc1: UUID="8ad8e9c2-9a2f-4f13-9452-3c8c431fa598" SEC_TYPE="ext2" TYPE="ext3" 
    /dev/sdc2: UUID="CE09-E896" TYPE="vfat"
3、掛載分區
[root@6 media]# mount /dev/sdd1 /media/sdd1[root@6 media]# mount /dev/sdd2 /media/sdd2[root@6 media]# mount -r /dev/sdc1 /media/sdc1[root@6 media]# mount -w /dev/sdc2 /media/sdc2[root@6 media]# dfFilesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       50264772 4596120  43108652  10% /
tmpfs             502068      76    501992   1% /dev/shm
/dev/sda1         194241   34211    149790  19% /boot
/dev/sda3       20027260  160072  18843188   1% /testdir
/dev/sr0         3824484 3824484         0 100% /media/CentOS_6.8_Final
/dev/sdd1        5242980   32928   5210052   1% /media/sdd1
/dev/sdd2        5039624   10264   4766700   1% /media/sdd2
/dev/sdc1        5160576  141436   4756996   3% /media/sdc1
/dev/sdc2        5232640       4   5232636   1% /media/sdc2
4、分區(mbr,gpt)區別和結構
MBR(Master Boot Record)主引導記錄,是傳統的分區機制,應用于絕大多數使用BIOS的PC設備
MBR支持32位和64位系統
MBR支持分區數量有限
MBR只支持不超過2T的硬盤,超過2T的硬盤將只能用2T空間(有第三方解決方法)
                  
GPT(GUID Partition Table)全局唯一標識分區表,是一個較新的分區機制,解決了MBR很多缺點
支持超過2T的磁盤(64位尋址空間)。fdisk最大只能建立2TB大小的分區,創建一個大于2TB的分區使用parted
向后兼容MBR
必須在支持uEFI的硬件上才能使用(Intel提出,用于取代BIOS)
必須使用64位系統

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

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

相關推薦

  • Liunx獲取信息幫助與man文檔章節的劃分

    首先要判斷命令的類型,可用 type COMMAND 來判斷命令 如果顯示結果為(….是 shell內嵌)即為shell內嵌命令,如需獲取幫助,使用 help COMMAND 即可; 下圖的例子是pwd是shell內嵌命令 內部命令屬于Shell的一部分,所以并沒有單獨對應的系統文件,只要Shell解釋器被運行,內部指…

    2017-07-02
  • Ansible的常用模塊

    command模塊: 目的:在指定節點上運行hostname命令 命令:ansible 192.168.1.16 -m command ?‘hostname’copy模塊:目的:把主控端/root目錄下的a.sh文件拷貝到到指定節點上 命令:ansible 192.168.1.16 -m copy -a ‘src=/roo…

    Linux干貨 2017-10-31
  • shell腳本編程基礎

    一.編程基礎             ? 程序:指令+數據             ? 程序編程風格:  &n…

    Linux干貨 2016-08-12
  • Linux網絡管理之路由和team網絡組

    如何實現把linux當路由器來使用,實現不同網段之間的通信訪問,這就是今天所要實現的路由配置   環境準備:4臺虛擬機,兩臺中間兩臺作為路由器來使用(每天主機兩塊網卡),其他兩臺作為終端主機,目的是讓不同網段的兩臺主機之間互相訪問(這里在vmware里面做的實驗,所以網卡的類型都設置為橋接)   拓撲圖:   步驟一:將A、D兩…

    系統運維 2016-09-10
  • 內部命令與外部命令

    內部命令與外部命令 內部命令在系統啟動時就調入內存,是常駐內存的,所以執行效率高。 外部命令是系統的軟件功能,用戶需要時才從硬盤中讀入內存。 1.type type COMMAND 判斷一個命令的類型即判斷一個命令是否為內置命令。   2.enable(內部命令) enable既可以查看內部命令,同時也可以判斷是否為內部命令 enable 顯示所有…

    2017-07-15
  • Linux磁盤與文件系統管理

    Linux磁盤管理 硬盤的物理組成 柱面 硬盤與讀存數據相關的部件:圓形硬盤片(一或多個)、磁頭、機械臂。 硬盤片上有磁道,多個硬盤片上的同一磁道形成柱面,這個柱面就是分區時形成的最小單位,windows的C盤(系統盤)分區就是在最外層的一堆柱面上。 扇區 硬盤上的最小存儲單位叫扇區,每個扇區儲存512字節。在讀取數據的時候,硬盤會轉動,利用機械手臂將磁頭移…

    Linux干貨 2016-11-22

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-29 10:16

    文章對各命令的作用,用法和常用選項總結的很完整,建議能多一些操作,嘗試著靈活運用這些工具來實現,分區的創建與格式化并掛載使用。多動手才能明白自己的不足哦。

欧美性久久久久