分區”魔術師”的磁盤管理

設備文件

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 (硬盤轉速)

設備文件

磁盤設備的設備文件命名:
  • /dev/DEV_FILE

IDE: /dev/hd

SCSI, SATA, SAS, USB: /dev/sd

不同設備: a-z

/dev/sda, /dev/sdb, …

同一設備上的不同分區: 1,2, …

硬盤結構

head:磁頭

track:磁道

cylinder: 柱面

secotr: 扇區, 512bytes

為什么是分區?

  • 優化I/O性能

  • 實現磁盤空間配額限制

  • 隔離系統和程序

  • 提高修復速度

  • 安裝多個OS

  • 采用不同文件系統

分區

兩種分區方式: MBR, GPT

MBR: Master Boot Record, 1982年, 使用32位表示扇區 數, 分區不超過2T

如何分區:按柱面

0磁道0扇區: 512bytes
  • 446bytes: boot loader

  • 64bytes:分區表

  • 16bytes: 標識一個分區

  • 2bytes: 55AA(標識磁盤分區是否存在分區)

MBR分區結構
  • 4個主分區; 3主分區+1擴展(N個邏輯分區)

GPT分區

GPT:GUID( Globals Unique Identifiers) partition table 支持128個分區,使用64位,支持8Z( 512Byte/block ) 64Z (4096Byte/block)

使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭 和尾兩份,并有CRC校驗位

UEFI (統一擴展固件接口)硬件支持GPT,使操作系統啟動 GPT分區結構

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

列出可用的磁盤設備

圖形化磁盤管理功能工具:點擊“應用程序” -> “系統工具” ->“磁盤”或執行命令gnome-disks

管理分區
列出塊設備

lsblk

創建分區使用:

fdisk 創建MBR分區,也支持GPT,對于一塊硬盤,最多只能管 理15分區

gdisk 創建GPT分區

GNU parted 高級分區操作(創建、復制、調整大小等等) partprobe-重新設置內存中的內核分區表版本

  • fdisk /dev/sdb

  • gfisk /dev/sdb 類fdisk 的GPT分區工具

fdisk -l [-u] [device…]

子命令:

  • p 分區列表

  • t 更改分區類型

  • n 創建新分區

  • d 刪除分區

  • w 保存并退出

  • q 不保存并退出

同步分區表

查看內核是否已經識別新的分區:

cat /proc/partations

通知內核重新讀取硬盤分區表

新增分區用

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(Extended file system), ext3,ext4, xfs( SGI) , btrfs( Oracle) , reiserfs, jfs(AIX) , swap

光盤: iso9660

Windows: fat32, ntfs

Unix: 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–系統在文件系統上,虛擬出一個新的文件系統, 統一配置接口, 方便訪問, 用戶與文件系統通過VFS進行訪問.

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

文件系統選擇

創建文件系統

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=

findfs [options] UUID=

tune2fs

tune2fs:重新設定ext系列文件系統可調整參數的值

  • -l:查看指定文件系統超級塊信息; super block

  • -L 'LABEL':修改卷標

  • -m #:修預留給管理員的空間百分比

  • -j: 將ext2升級為ext3

  • -O: 文件系統屬性啟用或禁用, –O ^has_journal

  • -o: 調整文件系統的默認掛載選項,–o ^acl

  • -U UUID: 修改UUID號

dumpe2fs:

  • -h:查看超級塊信息(分組信息),分區用分組管理

超級塊和inode table

文件系統檢測和修復

常發生于死機或者非正常關機之后

掛載為文件系統標記為“ 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': 以卷標指定掛載設備

  • -U 'UUID': 以UUID指定要掛載的設備

  • -B, –bind: 綁定目錄到另一個目錄上

查看內核追蹤到的已掛載的所有設備:

cat /proc/mounts

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

    • async:異步模式

    • sync:同步模式,內存更改時,同時寫磁盤

    • atime/noatime:包含目錄和文件

    • diratime/nodiratime:目錄的訪問時間戳

    • auto/noauto:是否支持自動掛載,是否支持-a選項

    • exec/noexec:是否支持將文件系統上運行應用程序

    • dev/nodev:是否支持在此文件系統上使用設備文件

    • suid/nosuid:不否支持suid和sgid權限

    • remount:重新掛載

    • ro:只讀

    • rw: 讀寫

    • user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載

    • acl:啟用此文件系統上的acl功能

    • Defaults:相當于rw, suid, dev, exec, auto, nouser, async

卸載命令

查看掛載情況:

findmnt MOUNT_POINT

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

lsof MOUNT_POINT

fuser -v MOUNT_POINT

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

fuser -km MOUNT_POINT

卸載:

umount DEVICE

umount MOUNT_POINT

原創文章,作者:M20-石俊,如若轉載,請注明出處:http://www.www58058.com/40473

(0)
M20-石俊M20-石俊
上一篇 2016-08-29 08:45
下一篇 2016-08-29 08:45

相關推薦

  • 第六周 N21 總有刁民想害朕

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;    %s/\(^[[:space:]]\)/#\1/ 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.…

    Linux干貨 2016-08-08
  • Linux系統上的文件處理工具

    Linux系統上的文件處理工具 我們都知道在計算機中,存在大量的文件,這些文件中包含大量的信息。可是有些時候,為了工作的效率,我們在茫茫信息中提取出我們所需要的信息,這樣的技能就顯得尤為重要。Linux系統上為我我們提供了多種多樣的文本處理工具,下面我們來簡單說一下。 查看文件內容我們可以使用less命令,cat命令,more命令等等 cat cat [OP…

    Linux干貨 2016-08-05
  • ? 馬哥教育網絡班22期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限;     cp -a /etc/skel /home/tuser1     chmod -R 7…

    Linux干貨 2016-10-17
  • 防護墻服務

    iptables的基本認識        Netfilter組件: 內核空間,集成在linux內核中 擴展各種網絡服務的結構化底層框架 內核中選取五個位置放了五個Hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POST ROUTING),而這五個hoot functio…

    2017-08-21
  • 網絡接口Bonding以及網絡組

    網絡接口Bonding就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 網絡組 :網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量。網絡組不同于舊版中bonding技術,提供更好的性能…

    Linux干貨 2016-11-23
  • N22-第十一周作業

    第十一周作業 1、詳細描述一次加密通訊的過程,結合圖示最佳 (1)為了做到數據的安全,應該同時滿足 保密性 完整性 可用性 (2)假設A,B通信,A是客戶機,B是服務器 a、客戶端向服務器端發送自己支持的加密方式,并且向服務器端請求其CA頒發給的證書 b、服務器選擇共同支持的加密方式并發送自己的證書; c、客戶端收到其證書,并驗證證書,證書必須同時滿足以下條…

    Linux干貨 2016-12-06

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-29 13:14

    文章對相關的磁盤管理知識點總結的很詳細,也有具體的示例操作,但是對于一些專有名詞,沒有通過自己的語言總結成一句通順的話語,這里需要多多鍛煉,我們寫博客主要是為了給別人看,而不是當作一份筆記來記錄。望多查資料,深入學習。

欧美性久久久久