磁盤管理

1.磁盤有兩種分區方式:MBR和GPT 

MBR分區需要注意什麼?

(1).MBR使用的是32位表示扇區數,分區不超過2T

(2).磁盤是按照柱面劃分區的

(3).MBR的0扇區有512types,有3部分組成: (1)446types是主引導記錄boot lader;(2)64types是分區表,每個分區表16types;(3)還有16type是結束標誌55AA

(4).磁盤可以分爲4個主分區:3個主分區和1個擴展分區

  實例:下面對mbr進行具體分析

(1).備份mbr磁盤0扇區

dd if=/dev/sda of=/root/mbr bs=1 count=512

(2).把備份的mbr恢復到sdb磁盤上

dd if=/root/mbr of=/dev/sdb

GTP分區需要注意什麼?

(1)GTP:支持128個分區,使用64位,支持8z(512byte/block),64z(4096byte/block)

(2)使用128位UUID表示磁盤和分區GTP分區表自動備份在投河尾兩份,並有CRC校驗位

(3)UEFI(統一擴展固件接口)硬件支持GTP


在linux系統中磁盤的管理包括以下四個方面:`  

(1).讀取新增加磁盤

(2).對新增磁盤進行分區

(3).對分區進行格式化,並設定卷標

(4).對分區進行掛載

一.讀取新增加的磁盤

1.一般在新增加磁盤後系統無法立刻識別出來,那麼就要進行下面的步驟,掃描生成新磁盤(在生產環境下硬盤支持熱插拔,不存在這種情況)

wKioL1fDn3ih3GWLAAAMlKtjgSo608.png-wh_50

2.使用lsblk查看磁盤是否讀取出來


二.對磁盤進行分區

1.先學習下分區命令

(1).列出塊設備

blkid 查看磁盤格式和UUID

(2). 創建分區使用

(1)fdisk 創建MBR分區,頁支持GPT,對於一塊硬盤,最多隻能管理15個分區

fdisk -l [-u][device]

子命令:

p: 分區列表

t: 更改分區類型

n: 創建新分區

d: 刪除分區

w: 保存並退出

q: 不保存並退出

(3)gdisk 創建GTP分區

2.同步分區表(重要操作)

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

#cat /proc/partitions

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

新增分區後用來讀取分區

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

kpartx -a /dev/DEVICE -f :force

刪除分區後用來讀取分區

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

centos6:-nr N-M

注意:如果是新建磁盤,一般分區後會直接讀取到磁盤

(3)Centos 5,7:使用 partprobe

partprobe [/dev/DEVICE]

(4)parted 的操作的都是實時生效的,小心使用

用法:parted[選項]...[設備[命令][參數]..]...]

parted /dev/sdb mklabel gpt|msdos

arted /dev/sdb print

parted /dev/sdb mkpart primary 1 200

parted /dev/ sdbrm1

parted -l


實例:對/dev/sdb 進行分區

(1)fdisk /dev/sdb

(2)使用選項n進入分區,(sdb1-sdb3設爲主分區,sdb4設爲擴展分區,sd5,sd6..設爲邏輯分區),使用p查看分區

(3)使用w保存 d可以刪除分區

(4)讀取磁盤partx -a /dev/sdb 執行2遍


三. 創建文件系統

1.文件系統類型

linux 文件系統:ext2,ext3,ext4,xfs(SGI),btrfs(Oracle),reiserfs,jfs(AXI),swap

swap:交換分區

光盤:iso996

windons: fat32,ntfs

Unix:FFS(fast),UFS(unix),JFS2

網絡文件系統:NFS,CIFS

集羣文件系統:GFS2,OCFS2(oracle)

分佈式文件系統:ceph,moosefs,mogilefs,glusterfs,Lustre

RAW: 未經處理或未經格式化產生的文件系統


2.文件系統分類

根據其是否支持"journal"功能:

日誌型文件系統: ext3, ext4, xfs, ...

非日誌型文件系統: ext2, vfat

文件系統的組成部分:

內核中的模塊:ext4, xfs, vfat

用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

Linux的虛擬文件系統:VFS

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

2. 文件系統管理工具:

1.磁盤分區格式化三種用法:

(1) mkfs.ext2,mkfs.ext3,mkfs.ext4


(2) mkfs -t ext2=mkfs.ext2=mke2fs -t ext2


(3) mke2fs [options] device (ext文件系統專用工具)

    -t: {ext2,ext3,ext4} 指明要創建的文件系統類型

     -b: {1024,2048,4096} 指明塊大小  mkfs.ext4 -b 1024 /dev/sdb1

    -l:  指明卷標

     -j:  相當於-t ext3      mke2fs -j = mke2fs -t ext3

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

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

    -m #:默認5%,位管理人員預留空間佔總控鍵的百分比

    -O FEATURE[...]: 啓用指定特性

    -O ^FEATURE: 關閉指定特性

    注意:mkfs -t ext2=mkfs.ext2=mke2fs -t ext2


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

 tune2fs [options] device

    -l:查看超級塊的內容

    -j :ext2升級爲ext3

     -L:修改卷標

     -m #:調整預留空間百分比

    -O: 文件系統屬性啓用或禁用, -O ^has_journal

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

    -U: 修改UUID號

實例:

1.查看ext文件系統超級塊

tune2fs -l /de/vsdb6

2.取消日誌功能

tune2fs -O ^has_joural /dev/sdb5

3.增加日誌功能

tune2fs -O has_journal /dev/sdb3

4.dumpe2fs   顯示ext系列文件系統的屬性信息

  dumpe2fs [-h] device  查看超級塊信息(分組信息)

5.用於實現文件系統檢測的工具,常用於發生死機或者非正常關機之後

 e2fsck 檢測ext2,ext3,ext4文件系統  

 e2fsck [options] device

  -y:對所有問題自動回答爲yes

  -f:強制修復

 fsck 檢測和修復文件系統

  -t fstype:指明文件系統類型

  fsck -t ext4 = fsck.ext4

  -a :無需交互而自動修復所有錯誤

  -r : 交互式修復

三.磁盤掛載

1. mount 掛載

   掛載點  用於作爲另一個系統的訪問入口,有3點需要注意:

          1.事先存在

          2.未被使用的或進程不會被使用的目錄

          3.掛載點原有的文件 會被隱藏

   mount用法: 

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

         選項:

          -r: readonly  只讀掛載

          -w: read and write 讀寫掛載 默認就是讀寫掛載

          -n: 掛載或卸載的操作不同步到/etc/mtab文件中(意思是掛載但不同步到配置文件中,隱藏起來了)

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

          -t vfstype: 指明要掛載的設備的文件類型

          -L :LABEL  掛載以卷標的方式指明設備  

          -U :UUID 掛載以uuid的方式指明設備    例: mount -U UUID dir

          -B :--bind :綁定目錄到另一個目錄上 例:mount -B /boot /mnt/boot

       查看內核追蹤到的已掛載的所有設備:cat /proc/mounts 或者 mount


        mount -o options 掛載選項 

       選項:

          aync: 異步模式

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

          atime/noatime: 文件或目錄在被訪問時是否更新其訪問時間戳

          loop: 用來把一個文件當成硬盤分區掛載在硬盤上

        ro: 只讀

         rw: 讀寫

         dev/nodev: 此設備上是否允許創建設備文件

         exec/noexec: 是否運行此設備上的程序文件

         user/nouser: 是否允許普通用戶掛載此文件

         suid/nosuid:   是否允許程序文件上的suid和sgid特殊權限生效 默認nosuid

        remount: 重新掛載 mount -o ro,remount /mnt/sdb2

        acl: 啓用此係統上的acl

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

        支持使用facl功能

        掛載默認不開啓acl功能,若開啓acl功能,執行下面命令

    mount -o acl device dir 

     tune2fs -o acl device

    mount  /testdir/partfile  /mnt/partfile/ -o loop

實例:針對mount 的suid權限做一個實驗

如果賦給mount suid權限,那麼普通用戶就可以掛載可移動設備,而可移動設備上面有一些二進制程序,那麼在掛載可移動磁盤時

執行 mount -o suid /dev/sdb2 /mnt/sdb2 n賦予二進制程序suid權限,那麼普通用戶將會獲取部分root權限,造成安全隱患

      

2.卸載命令

1.查看掛載情況

#findmnt MOUNT_POINT

wKiom1fDn9LTVqOgAAAd9qiiV2Y764.png/mnt/sdb1是掛載點

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

#lsof MOUNT_POINT

#fuser -v MOUNT_POINT

3.終止所有正在訪問指定的文件系統的 

#fuser -km MOUNT_point

4.卸載

# umount DEVICE

# umount MOUNT_POINT

3.文件掛載配置文件

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

要掛載的設備或僞文件系統

設備文件;LABEL(LABEL="");UUID(UUID="");僞文件系統名稱(proc,sysfs)

掛載選項:defaults

轉儲頻率: 0: 不做備份

      1:每天轉儲

       2:每隔一天轉儲

自檢次序: 0:不自檢

    1:首先自檢:一般只有rootfs才用1


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


實例:在/etc/fstab中寫入下面紅框的行,沒次開機啓動就會自動掛載

 wKioL1fDoDSi3mk8AACx-V_93P0605.png第一次掛載 mount -a 生效

之前掛載過修改後用mount -o remount MOUNT_POINT


實用技巧:

   可以實現將目錄綁定在另一個目錄上,作爲臨時訪問接口

    mount --blind 源目錄 目標目錄

查看當前目錄已掛載的設備

   mount

   cat /etc/mtab

   cat /proc/mounts



實例:

1.目錄掛載到目錄

mkdir /testdir/dir

mount -B /testdir/dir /mnt/dir

2.利用文件 ,實現文件系統(作用是代替分區做一些測試工作)

在centos6 上做實驗

(1)dd if=/dev/zero of=/testdir/partfile bs=1M count=500

(2)mkfs.ext4 /testdir/partfile

(3)mkdir /mnt/partfile

(4)mount /testdir/paryfile  mnt/partfile -o loop

(5)vim /etc/fstab

losetup /dev/loop1 /testdir/partfile

mount/dev/loop1 /mnt/partfile


附加losetup詳解:

Linux losetup命令用於設置循環設備。

循環設備可把文件虛擬成區塊設備,籍以模擬整個文件系統,讓用戶得以將其視爲硬盤驅動器,光驅或軟驅等設備,並掛入當作目錄來使用。

語法

losetup [-d][-e <加密方式>][-o <平移數目>][循環設備代號][文件]

參數:

-d 卸除設備。

-e<加密方式> 啓動加密編碼。

-o<平移數目> 設置數據平移的數目。

實例

(1)創建空的磁盤鏡像文件,這裏創建一個1.44M的軟盤

$ dd if=/dev/zero of=floppy.img bs=512 count=2880

(2)使用 losetup將磁盤鏡像文件虛擬成快設備

$ losetup /dev/loop1 floppy.img

(3)掛載塊設備

$ mount /dev/loop0 /tmp

經過上面的三步之後,我們就可以通過/tmp目錄,像訪問真實快設備一樣來訪問磁盤鏡像文件floppy.img。

(4) 卸載loop設備

$ umount /tmp

$ losetup -d /dev/loop1


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章