1. 程式人生 > >Linux基礎管理——磁盤管理

Linux基礎管理——磁盤管理

color 完成 文件系統 備份 mbr nor images 掛載文件系統 系統屬性

1、設備文件


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


設備文件的使用:

   通過將文件關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信。
    一切皆文件,所以磁盤的也是也是基於設備文件與之通信的:open(), read(), write(), close()


設備號碼:

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


硬盤接口類型:

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



磁盤設備的設備文件命名:

    /dev/DEV_FILE
    
    SCSI, SATA, SAS, IDE,USB: /dev/sd;
    虛擬磁盤:/dev/vd;
    
    不同磁盤標識:a-z,aa,ab…/dev/sda, /dev/sdb, ...;
    同一設備上的不同分區:1,2, .../dev/sda1, /dev/sda5;



2、磁盤結構


2.1、機械硬盤(HDD)


技術分享圖片

技術分享圖片


2.2、固態硬盤(SSD)和機械硬盤(HDD)


技術分享圖片



2.3、硬盤存儲術語及扇區結構


head:磁頭;
track:磁道;
cylinder: 柱面;
sector: 扇區,512bytes;


(1)早期扇區結構


技術分享圖片


(2)區位記錄磁盤扇區結構:ZBR(Zoned Bit Recording)

技術分享圖片



2.4、CHS和LBA


CHS:

   采用24bit位尋址;
    最大尋址空間8GB;

LBA(logical block addressing)

   LBA采用48個bit位尋址
    最大尋址空間128PB


註意:

    由於CHS尋址方式的尋址空間在大概8GB以內,所以在磁盤容量小於大概8GB時,可以使用CHS尋址方式或是LBA尋址方式;在磁盤容量大於大概8GB時,則只能使用LBA尋址方式。



2.5、使用分區空間


    設備識別;
    設備分區;
    創建文件系統;
    標記文件系統;
    在/etc/fstab文件中創建條目;
    掛載新的文件系統;


2.5、磁盤分區的意義及分區類型


磁盤分區意義:

    優化I/O性能
    實現磁盤空間配額限制
    提高修復速度
    隔離系統和程序
    安裝多個OS
    采用不同文件系統



兩種分區方式:MBR,GPT


2.5.1、MBR


MBR:

    Master Boot Record,1982年,使用32位表示扇區數,分區不超過2T;    
    按柱面


MBR分區結構:

硬盤主引導記錄MBR由4個部分組成:

    主引導程序(偏移地址0000H--0088H):它負責從活動分區中裝載,並運行系統引導程序。
    出錯信息數據區:偏移地址0089H--00E1H為出錯信息,0E2H--01BDH全為0字節。
    
    分區表(DPT,Disk Partition Table):含4個分區項,偏移地址01BEH--01FDH,每個分區表項長16個字節,共64字節;為分區項1、分區項2、分區項3、分區項4
    結束標誌字:偏移地址01FE--01FF的2個字節值為結束標誌55AA。



2.5.2、GPT分區

GPT:

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


3、分區管理


3.1、圖形化

圖形化磁盤管理功能工具:

    點擊“應用程序” ->“系統工具” ->“磁盤”;
    執行命令gnome-disks


3.2、分區管理


列出塊設備:lsblk;
創建分區使用:
    fdisk 創建MBR分區;
    gdisk 創建GPT分區;
    parted 高級分區操作;
    
partprobe-重新設置內存中的內核分區表版本;


3.3、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


3.3、分區工具:fdisk & gdisk


    gdisk /dev/sdb:類fdisk 的GPT分區工具;

    fdisk -l [-u] [device...] 查看分區;
    fdisk /dev/sdb 管理分區;


子命令:

    p 分區列表
    t 更改分區類型
    n 創建新分區
    d 刪除分區
    v 校驗分區
    u 轉換單位
    w 保存並退出
    q 不保存並退出



查看內核是否已經識別新的分區:
    cat /proc/partations


同步分區表:

centos6通知內核重新讀取硬盤分區表:
    新增分區用:
        partx -a /dev/DEVICE
        kpartx -a /dev/DEVICE -f: force
    刪除分區用:
        partx -d --nr M-N /dev/DEVICE

CentOS 5,7:使用partprobe
    partprobe [/dev/DEVICE]



4、文件系統管理


4.1、文件系統類型

    Linux文件系統:ext2(Extended file system), ext3,ext4, xfs(SGI), btrfs(Oracle), reiserfs, jfs(AIX), swap
    光盤:iso9660
    Windows:FAT32, exFAT,NTFS
    Unix:FFS(fast), UFS(unix), JFS2
    
    網絡文件系統:NFS, CIFS
    集群文件系統:GFS2, OCFS2(oracle)
    分布式文件系統: fastdfs,ceph, moosefs, mogilefs,glusterfs, Lustre
    RAW:未經處理或者未經格式化產生的文件系統


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


4.2、創建文件系統

mkfs命令:
    (1) mkfs.FS_TYPE /dev/DEVICE
        ext4
        xfs
        btrfs
        vfat
    (2) mkfs -t FS_TYPE /dev/DEVICE
    -L 'LABEL': 設定卷標


創建ext文件系統:

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 [LABEL]


findfs :查找分區
    findfs [options] LABEL=<label>
    findfs [options] UUID=<uuid>



tune2fs:

    重新設定ext系列文件系統可調整參數的值;
    
    -l:查看指定文件系統超級塊信息;super block
    -L 'LABEL':修改卷標
    -m #:修預留給管理員的空間百分比
    -j: 將ext2升級為ext3
    -O: 文件系統屬性啟用或禁用, –O ^has_journal
    -o: 調整文件系統的默認掛載選項,–o ^acl
    -U UUID: 修改UUID號


dumpe2fs:

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


4.3、文件系統檢測和修復

    常發生於死機或者非正常關機之後;    
    掛載為文件系統標記為“ no clean”;
    註意:一定不要在掛載狀態下修復;
fsck: File System Check

fsck.FS_TYPE
fsck -t FS_TYPE
    -p: 自動修復錯誤
    -r: 交互式修復錯誤
    FS_TYPE一定要與分區上已經文件類型相同;


e2fsck:ext系列文件專用的檢測修復工具
    -y:自動回答為yes
    -f:強制修復



5、掛載


掛載:

    將額外文件系統與根文件系統某現存的目錄建立起關聯關系,
    進而使得此目錄做為其它文件訪問入口的行為


註意:

    掛載點下原有文件在掛載完成後會被臨時隱藏;    
    掛載點目錄一般為空;
    事先存在;建議使用空目錄;
    進程正在使用中的設備無法被卸載;


語法:

mount DEVICE MOUNT_POINT
mount [-fnrsvw] [-t vfstype] [-o options] device dir
    -t vsftype:指定要掛載的設備上的文件系統類型
    -r: readonly,只讀掛載
    -w: read and write, 讀寫掛載
    -n: 不更新/etc/mtab,mount不可見
    -a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab
    文件中,且掛載選項中有auto功能)
    -L 'LABEL': 以卷標指定掛載設備
    -U 'UUID': 以UUID指定要掛載的設備
    -B, --bind: 綁定目錄到另一個目錄上
    
    查看內核追蹤到的已掛載的所有設備
    cat /proc/mounts



-o options:(掛載文件系統的選項),多個選項使用逗號分隔

    async:異步模式    
    sync:同步模式,內存更改時,同時寫磁盤
    atime/noatime:包含目錄和文件
    diratime/nodiratime:目錄的訪問時間戳
    auto/noauto:是否支持自動掛載,是否支持-a選項
    exec/noexec:是否支持將文件系統上運行應用程序
    dev/nodev:是否支持在此文件系統上使用設備文件
    suid/nosuid:是否支持suid和sgid權限
    remount:重新掛載
    ro:只讀
    rw:讀寫
    user/nouser:是否允許普通用戶掛載此設備,/etc/fstab使用
    acl:啟用此文件系統上的acl功能
    loop: 使用loop設備
defaults:相當於rw, suid, dev, exec, auto, nouser, async



6、卸載命令


查看掛載情況

findmnt MOUNT_POINT|device


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

lsof MOUNT_POINT
fuser -v MOUNT_POINT


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

fuser -km MOUNT_POINT


卸載

umount DEVICE
umount MOUNT_POINT




7、文件掛載配置文件


註意:使用mount -a 命令掛載/etc/fstab中的所有文件系統

/etc/fstab每行定義一個要掛載的文件系統:

1)要掛載的設備或偽文件系統;
    設備文件;
    LABEL:LABEL="";
    UUID:UUID="";
    偽文件系統名稱:proc, sysfs;

2)掛載點;

3)文件系統類型;

4)掛載選項:defaults;

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

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




8、處理交換文件和分區


交換分區是系統RAM的補充。


8.1、基本設置

    創建交換分區或者文件    
    使用mkswap寫入特殊簽名
    在/etc/fstab文件中添加適當的條目
    使用swapon -a 激活交換空間




交換分區的啟用與禁用:

    啟用:swapon
    swapon [OPTION]... [DEVICE]
        -a:激活所有的交換分區;
        -p PRIORITY:指定優先級
        /etc/fstab:pri=value
    禁用:swapoff [OPTION]... [DEVICE]


8.2、SWAP的優先級



    可以指定swap分區0到32767的優先級,值越大優先級越高;    
    
    如果用戶沒有指定,那麽核心會自動給swap指定一個優先級,這個優先級從-1開始,
    每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一;
    
    先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,
    而用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數);
    
    優化性能:分布存放,高性能磁盤存放;



技術分享圖片

Linux基礎管理——磁盤管理