磁盤管理

CHS cylinder-head-sector

cylinder柱面=track*head=512*63*256=8M 


磁盤分區

為什么是分區?

? 優化I/O 性能

? 實現磁盤空間配額限制

? 提高修復速度

? 隔離系統和程序

? 安裝多個OS

? 采用不同文件系統

 

MBR:使用32位表示扇區數量,按每扇區512字節計算,每個分區最大不能超過2TB

blob.png

 

(Globals Unique Identifiers Partition Table,縮寫:GPT)是一個實體硬盤的分區表的結構布局的標準。它是可擴展固件接口(EFI)標準,被用于替代BIOS系統中的一32bits來存儲邏輯塊地址和大小信息的主開機紀錄(MBR)分區表。GPT支持128個分區,使用128 位UUID 區 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC 校驗位

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

 

管理分區

列出塊設備  lsblk

創建分區使用:

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

   gdisk創建GPT 分區

   GNU parted  高級分區操作(創建、復制、調整大小等等)

partprobe-重新設置內存中的內核分區表版本

 

centos7

fdisk -l -u=cylinders /dev/sda   //以柱面顯示

fdisk -l  /dev/sda                        //以扇區顯示

 

echo "- – -" > /sys/class/scsi_host/host2/scan   //不重啟,識別到新加硬盤

blob.png

 

hexdump -C -n 512 /dev/sda      //查看頭文件

blob.png(1)

 

dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512    //備份頭文件

blob.png

 

hexdump -v -C /testdir/mbrbak     //顯示同(1)說明備份成功

 

dd if=/testdir/mbrbak of=/dev/sdb    //恢復分區表

fdisk -l /dev/sdb   //分區信息同/dev/sda

 

dd if=/dev/zero of=/dev/sdb bs=1 count=446    //破壞/dev/sdd前446個字節

hexdump -C -n 512 /dev/sdb     //檢查發現頭文件的前部分被0填充

 

dd if=/dev/zero of=/dev/sdb bs=1 count=2 skip=510 seek=510   //清掉最后的兩字節55A,標志位

fdisk -l /dev/sdb   無分區信息

 

fdisk /dev/sdb

 子命令:

    p  分區列表

    t   更改分區類型

    n  創建新分區

    d  刪除分區

    w 保存并退出

    q  不保存并推出

 

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

blob.png

 

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

   新增分區用

   partx -a -n M:N /dev/DEVICE

   kpartx -a /dev/DEVICE -f: force

   刪除分區用

   partx -d -n M:N /dev/DEVICE

   centos 6: –nr N-M     //specify the range of partitions

centos  5,7使用partprobe

partprobe [/dev/DEVICE]

 

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

也可parted device 進入交互式界面操作

 

 

文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統負責管理和存儲文件信息的軟件結構稱為文件管理系統, 簡稱文件系統。

 

從系統角度來看,文件系統是對文件存儲設備的空間進行組 織和分配,負責文件存儲并對存入的文件進行保護和檢索的 系統。具體地說,它負責為用戶建立文件,存入、讀出、修 改、轉儲文件,控制文件的存取,安全控制,日志,壓縮, 加密等。

 

 

 

文件系統類型

Linux 文件系統: ext2(Extended file system), ext3/4, 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

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

 

 

 

lsmod  //查看加載的模塊

lsmod|grep xfs

blob.png

 

 

VFS是一個可以讓open()、read()、write()等系統調用不用關心底層的存儲介質和文件系統類型就可以工作的粘合層

在Linux下,通過VFS,一個抽象的通用訪問接口屏蔽了底層文件系統和物理介質的差異性

blob.png

 

blob.png

 

 

Linux硬盤組織方式為:引導區、超級塊(superblock),索引結點(inode),數據塊(datablock),目錄塊(diredtory block).其中超級塊中包含了關于該硬盤或分區上的文件系統的整體信息,如文件系統的大小等;超級塊后面的數據結構是索引結點,它包含了針對某一個具體文件的幾乎全部信息,如文件的存取權限、所有者、大小、建立時間以及對應的目錄塊和數據塊等;數據塊是真正存儲文件內容的位置.但是索引結點中不包括文件的名字,文件名是放在目錄塊里的.目錄塊里包含有文件的名字以及此文件的索引結點編號.

 

blob.png

 

 

創建文件系統

mkfs.FS_TYPE   /dev/DEVICE

   ext4|xfs|btrfs|vfat

mkfs -t FS_TYPE  /dev/DEVICE

   -L 'LABEL' 設定卷標

 

mke2fs :ext 系列文件系統專用管理工具

   -t {ext2|ext3|ext4}

   -b {1024|2048|4096}

   -L 'LABEL'

   -j: 相當于 -t ext3   //journal 日志

   blob.png

    blob.png

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

   -i #:  為數據空間中每多少個字節創建一個inode ;此大 小不應該小于block 的大小

   -N # :為數據空間創建個多少個 個inode

   -I  一個inode 記錄大小128—4096

   -m #:  默認5%, 為管理人員預留空間占總空間的百分比

   blob.png

    mkfs.ext4 -m 1 /dev/sdb1     //調為1%

   -O FEATURE[,…] :啟用指定特性     

   -O ^FEATURE

   -f:強制轉為xfs文件系統

   blob.png

 

文件系統標簽

blkid :塊設備屬性信息查看

blob.png

blkid [OPTION]… [DEVICE]

-U UUID:  根據指定的UUID 來查找對應的設備

-L LABEL :根據指定的LABEL 來查找對應的設備

根據/etc/fstab中/boot目錄的UUID查找對應的設備

blkid -U `sed -nr "s/UUID=(.*) \/boot.*/\1/p"  /etc/fstab`

blkid -U `cat /etc/fstab |grep boot|cut -d' ' -f1|cut -c6-`

 

e2label :管理ext 系列文件系統的LABEL

e2label DEVICE [LABEL]

blob.png

 

findfs :查找分區

findfs [options] LABEL=<label>

findfs [options] UUID=<uuid>

blob.png

 

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

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

   blob.png

   -L 'LABEL' :修改卷標

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

   -j:  將ext2 升級為ext3

   -O:  文件系統屬性啟用或禁用, 

tune2fs -O ^has_journal /dev/sdb1  //取消日志

tune2fs -l /dev/sdb1 看不到has_journal ,blkid 看到/dev/sdb1 無TYPE="ext3")

   blob.png

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

   -U UUID:  修改UUID號

 xfs系統用tune2fs -l查看無效

 vfat系統不區分大小寫,權限755,不受umask管制,不安全

 

dumpe2fs

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

dumpe2fs  /dev/sdb1

blob.png

 

 

 

文件系統檢測和修復:

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

掛載為文件系統標記為“dirty” ”

fsck: File System Check

   fsck.FS_TYPE

   fsck -t FS_TYPE

       -a:  自動修復錯誤

       -r:  交互式修復錯誤

注意: FS_TYPE 一定要與分區上已經文件類型相同

e2fsck :ext 系列文件專用的檢測修復工具

   -y:自動回答為yes

   -f :強制修復

 

 

 

mke2fs -t ext4 /dev/sdb3

dd if=/dev/zero of=/dev/sdb3 bs=1k count=10   //破壞超級塊

tune2fs -l /dev/sdb3  顯示bad magic number

e2fsck   /dev/sdb3    //修復得在非掛載情況下進行,否則容易造成破壞

 

fuser -km /mnt/sdb2   //kill,換成根自殺

 

 

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

用mount命令掛載文件系統  mount DEVICE MOUNT_POINT

mount :通過查看/etc/mtab

mount [-fnrsvw] [-t vfstype] [-o options] device dir

    device :指明要掛載的設備;

    (1)設備文件

    (2)卷標:-L 'LABEL'

    (3)UUID, -U 'UUID'

    (4)偽文件系統名稱:proc, sysfs, devtmpfs, configfs

    dir :掛載點

    事先存在;建議使用空目錄

    進程正在使用中的設備無法被卸載

 

常用選項:

-t vsftype :指定要掛載的設備上的文件系統類型

-r: readonly ,只讀掛載

-w: read and write,  讀寫掛載

-n:  不更新/etc/mtab ,相當于#mount

-a:自動掛載所有支持自動掛載的設備( 定義在了/etc/fstab 文件中,且掛載選項中有auto功能)

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

mount -B /boot/ /mnt/boot   //兩個目錄都看到一致的內容,因為是同樣的文件

blob.png

 

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

   async :異步模式

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

mount -o sync /dev/sdb1 /mnt/sdb1

blob.png

   atime/noatime :包含目錄和文件

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

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

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

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

   suid/nosuid :是否支持suid 和sgid 權限

   remount :重新掛載

   mount -o,remount,noexec /mnt/sdb1

   blob.png

   ro :只讀

   rw:讀寫

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

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

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

 

mknod cdrom b 11 0   ////生成cdrom這個設備

blob.png

mount  ./cdrom /mnt/boot

cd  /mnt/boot 可以訪問光盤內容

 

 

 

centos7

yum  install autofs

systemctl start autofs

根目錄下出現misc目錄

cd /misc

cd cd     //掛載光盤

 

 

 

 

 

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

(0)
victorycommandervictorycommander
上一篇 2016-08-28 21:59
下一篇 2016-08-29 08:44

相關推薦

  • 學習總結

    課上練習整理

    Linux干貨 2017-11-19
  • 數組

    一.數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 索引:編號從0 開始,屬于數值索引  注:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0 版本之后開始支持,bash 的數組支持稀疏格式(索引不連續) 二.數組的聲明 declare -a ARRAY_NAME decla…

    Linux干貨 2016-11-23
  • N25第二周視頻作業:用戶、組與權限管理詳解

    此篇博客是根據視頻要求寫的,因為馬哥在視頻中說了,用戶組、權限在linux運維過程中比較重要,所以一定要深入學習 首先,先介紹一下用戶、組與權限是什么:     用戶:用戶時指你在服務器上的標識,通過不同類型的用戶,你享受到不同的待遇,而待遇就是權限的大小。每個用戶在服務器上都有唯一的id標識,即使你將此用戶刪除,再建…

    Linux干貨 2016-11-26
  • Centos圖形界面和命令行界面切換—-使用init

    1、從圖形界面切換到命令行界面      點擊Applications–System Tools–Terminal。    打開后輸入: su root(運行init需要管理員權限) 按回車,輸入init 3或者init 2都可以,然后回車就可以    進入命令行界…

    Linux干貨 2015-11-10
  • 六步建立yum倉庫

    建立yum倉庫

    Linux干貨 2018-03-26
  • 源碼編譯安裝apache httpd-2.2.29

        1.程序包編譯         ? 程序包編譯安裝:   (需要gcc、make工具)            &…

    Linux干貨 2016-08-24
欧美性久久久久