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 08:45
下一篇 2016-08-29 08:49

相關推薦

  • 永遠不要讓自己停下

    曾幾何時,我還是剛出象牙塔的小男孩。想想現在,經過4年的洗禮,我不再是小男孩了。可是,我卻發現自己變得越來越懶,守著那丁點的知識。 我早已坐吃山空而不自知,早已落后于時代的趨勢而不自知。時代需要一個勤奮而專注的我,需要一個不懈怠的我。 如果,我不繼續前進,等待我的只有墮落。逆水行舟不進則退,不逼自己一把,永遠不知道自己的潛力有多大。 我希望說,再見,懈怠而懶…

    Linux干貨 2016-10-07
  • 來到馬哥的第一天

    找到馬哥之后的故事

    Linux干貨 2018-03-26
  • vim文本編輯器

    vi簡介 vi:Visual Interface,是一種功能強大的文本編輯器,工作在字符模式下,它可執行輸出、輸出、查找、替換、塊等眾多文本操作,不需要圖形界面,因此執行起來效率會非常高,主要用來編輯純文本文件,常見的編碼有,ASCII,Unicode等等 文本編輯器的種類:     行編輯器:逐行來對文本進行處理的工…

    Linux干貨 2016-08-15
  • 2016-10-18作業

    2016-10-17 課后作業  1. 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。     1)首先,查看本地硬件時間是否正確,命令如下:       hwclock       如果該時間是正確的,使用該時間來更新系統時間。命令如下: &nbs…

    Linux干貨 2016-10-20
  • Linux 第七天: (08月05日) 練習和作業

    Linux 第七天: (08月05日) 練習和作業       1 找出ifconfig命令結果中本機的所有IPv4地址 ifconfig | tr -cs '[0-9].''\n' | sort -ut '.' -k3 -n 或ifconfig | head -2 |…

    Linux干貨 2016-08-08
  • linux用戶與用戶組詳解

    LINUX用戶與用戶組詳解     1,用戶和用戶組文件   在linux中,用戶帳號,用戶密碼,用戶組信息和用戶組密碼均是存放在不同的配置文件中的。分別是 passed gpassd shadow group 中。   在linux系統中,所創建的用戶帳號和其相關信息(密碼除外)均是存放在/etc…

    Linux干貨 2017-07-22

評論列表(1條)

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

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

欧美性久久久久