文件系統

磁盤沒有文件系統 對其讀取是以二進制讀取  

      文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的 系統。具體地說,它負責爲用戶建立文件,存入、讀出、修 改、轉儲文件,控制文件的存取,安全控制,日誌,壓縮, 加密等 對磁盤進行格式化

顯示支持的文件系統: ls /lib/modules/`uname –r`/kernel/fs


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

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

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

 

文件系統的組成部分:

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

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

 

1.創建文件系統

 

mkfs命令:

 v(1) mkfs.FS_TYPE /dev/DEVICE

                      ext4

                        xfs

                      btrfs

                       vfat

(2) mkfs -t FS_TYPE /dev/DEVICE -L 'LABEL':     指明文件類型並設定卷標

            -b {1024|2048|4096} 塊大小    mkfs.xfs -b 1024 /dev/sdc  裏面文件至少佔1024

          塊大小爲磁盤扇區(512字節)  的整數倍  

 

2.創建ext文件系統

mke2fsext系列文件系統專用管理工具

-t {ext2|ext3|ext4}

 -b {1024|2048|4096}  創建後無法更改

-L 'LABEL'   卷標             一般爲 掛載目錄  mkdir /mnt/ss4     mount /dev/sdd1 /mnt/ss4

-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:關閉指定特性

 

3.ext系列文件系統參數調整   不能調整block大小

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

 

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

 -L 'LABEL':修改卷標

 tune2fs /dev/sdd1 -L /mnt/ss4

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

 -j: ext2升級爲ext3

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

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

 -U UUID: 修改UUID

 

4.文件系統標籤

blkid:塊設備屬性信息查看

 vblkid [OPTION]... [DEVICE]

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

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

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

e2label DEVICE [LABEL]

vfindfs :查找分區

 findfs [options] LABEL=<label>

 findfs LABEL=/mnt/ss4

 findfs [options] UUID=<uuid>

findfs UUID=9e141ad2-0d2f-4668-963e-bf2c4d01c4d2

 

[root@centos7 fs]$mkfs.ext4 /dev/sdd1

[root@centos7 fs]$blkid

/dev/sdd1: UUID="3e7988c1-6f1a-4fe8-b6a2-68cad8553fdc" TYPE="ext4"

[root@centos7 fs]$mkfs -t ext3 /dev/sdd1

/dev/sdd1: UUID="afc398dd-2c59-4c7b-b1b4-3d42d46a85f6" SEC_TYPE="ext2" TYPE="ext3"

[root@centos7 fs]$tune2fs -l /dev/sdd1

(默認特性)Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file

[root@centos7 fs]$tune2fs -O ^has_journal /dev/sdd1

[root@centos7 fs]$blkid

/dev/sdd1: UUID="afc398dd-2c59-4c7b-b1b4-3d42d46a85f6" TYPE="ext2"         ex3ex2多了日誌功能

 

5.文件系統檢測和修復

 

常發生於死機或者非正常關機之後

掛載爲文件系統標記爲“no clean”

v 注意:一定不要在掛載狀態下修復

 vfsck: File System Check fsck.FS_TYPE fsck -t FS_TYPE

-p: 自動修復錯誤

 -r: 交互式修復錯誤 FS_TYPE一定要與分區上已經文件類型相同

 ve2fsckext系列文件專用的檢測修復工具

 -y:自動回答爲yes

  -f:強制修復

注:fsck 掃描文件系統時一定要在單用戶模式、修復模式或把設備umount後進行。

         文件系統的修復 頂多修復的是文件系統的元數據 並不能修復其內容

 

dumpe2fs  DEVICE: 查看文件系統詳細信息

塊分組管理,32768塊 一組

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

 

Primary superblock at 0主要超塊0

Superblock backups stored on blocks: 備份超級塊

 

[root@centos7 ~]$dumpe2fs /dev/sdd1 | grep -i "superblock"

dumpe2fs 1.42.9 (28-Dec-2013)

 Primary superblock at 0, Group descriptors at 1-1  

 Backup superblock at 32768, Group descriptors at 32769-32769

 Backup superblock at 98304, Group descriptors at 98305-98305

 Backup superblock at 163840, Group descriptors at 163841-163841

 Backup superblock at 229376, Group descriptors at 229377-229377

 Backup superblock at 294912, Group descriptors at 294913-294913

[root@centos7 ~]$dd if=/dev/zero of=/dev/sdd1 bs=1M count=1          破壞sdd1 主要超快0 (Reserved GDT blocks at 2-256) 256x4(塊大小)=1M 全局描述符表GDT損壞

[root@centos7 ~]$dumpe2fs /dev/sdd1

dumpe2fs 1.42.9 (28-Dec-2013)

dumpe2fs: Bad magic number in super-block while trying to open /dev/sdd1

Couldn't find valid filesystem superblock.

[root@centos7 ~]$fsck /dev/sdd1     未掛載狀態下修復

[root@centos7 ~]$dumpe2fs /dev/sdd1 | grep -i "superblock"

Backup superblock at 163840, Group descriptors at 163841-163841

 

6.用mount命令掛載文件系統

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

v 掛載點下原有文件在掛載完成後會被臨時隱藏

v 掛載點目錄一般爲空

v 卸載時:可使用設備,  也可以使用掛載點 umount 當掛載設備被訪問時,不能取消該設備掛載

多個設備分區不允許同1個掛載點

1個設備分區可以多個掛載點

 

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

-n: 不更新/etc/mtabmount不可見     cat /proc/mounts可查看

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

 

給文件創建文件系統

[root@centos6 ~]#dd if=/dev/zero of=/app/cantest bs=1M count=100   文件

[root@centos6 ~]mke2fs -t ext4 /app/cantest

[root@centos6 ~]#blkid /app/cantest      centos6 cantest爲文件    查看屬性需要跟詳細路徑

/app/cantest: UUID="50955518-b925-4b14-b127-7b13d671ca62" TYPE="ext4"

對文件掛載目錄

[root@centos6 ~]#mkdir one

[root@centos6 ~]#mount /app/file one

mount: /app/file is not a block device (maybe try `-o loop'?) 不是塊設備不能定義block大小

[root@centos6 ~]#mount -o loop /app/file one      對文件進行掛載  需要使用loop設備進行掛載  ls /dev/loop*

[root@centos6 ~]#mount

/app/file on /root/one type ext4 (rw,loop=/dev/loop0)

centos6 /dev/loop*設備不夠 可手動創建

[root@centos6 ~]#ll /dev/loop*

brw-rw----. 1 root disk 7, 7 Aug  1 21:14 /dev/loop7

[root@centos6 ~]#mknod /dev/loop8 b 7 8

[root@centos6 ~]#cp /app/file{,1}

[root@centos6 ~]#blkid /app/file{,1}

/app/file: UUID="add5eca5-be19-4603-bd20-ba40f28017a0" TYPE="ext4"

/app/file1: UUID="add5eca5-be19-4603-bd20-ba40f28017a0" TYPE="ext4"  複製保留文件系統特性

 

目錄掛載目錄

[root@centos6 ~]#mount -B /etc /app

[root@centos6 ~]#ls /app

abrt                     drirc             latrace.conf      pinforc                       screenrc

acpi                     enscript.cfg      latrace.d         pkcs11                        securetty

[root@centos6 ~]#ls /etc

abrt                     drirc             latrace.conf      pinforc                       screenrc

acpi                     enscript.cfg      latrace.d         pkcs11                        securetty

像文件的硬鏈接 但實現了跨分區

 

mount常用命令選項

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

atime/noatime:包含目錄和文件  不刷新訪問時間  適用於web服務器

[root@centos6 ~]#mount -B -o noatime /etc one  one訪問/etc文件目錄 不刷新訪問時間

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

suid/nosuid:不否支持suidsgid權限

remount:重新掛載    不用取消在掛載    mount -o remount MOUNT_POINT|device

[root@centos6 ~]#mount /mnt/cdrom /mnt/sdd2

掛載後重掛載

[root@centos6 ~]#umount /mnt/sdd2

[root@centos6 ~]#mount -o dev /mnt/cdrom /mnt/sdd2

等同於

[root@centos6 ~]#mount -o remount,dev /mnt/sdd2|mnt/cdrom

 defaults(默認掛載選項):相當於rw, suid, dev, exec, auto, nouser, async 

 

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

lsof  查看那個進程,那個用戶打開了某個文件,目錄等信息。

lsof MOUNT_POINT

fuser -v MOUNT_POINT

v 終止所有在正訪問指定的文件系統的進程 fuser -km MOUNT_POINT

v 取消掛載 umount DEVICE

                umount MOUNT_POINT

 

查看掛載情況

findmnt MOUNT_POINT|device 

 echo $?

 

7.掛載點和/etc/fstab

v 配置文件系統體系

     cat /etc/fstab

 v mountfsck和其它程序使用

 v 系統重啓時保留文件系統體系

 v 可以在設備欄使用文件系統卷標

 v 使用mount  -a 命令掛載/etc/fstab中的所有文件系統帶  defaults(默認掛載選項)立即生效  試用於一般掛載 不適合文件 目錄 swap     要 使用mount -o remount /dev/sdd  重掛立即生效

     設備名、卷標 、UUID都可以描述設備    由於設備名位置可能發生變化以及卷標可能重複性 ,在設備的配置文   件中描述設備最好用UUID  文件系統的通用唯一標識符UUID

 Untitled picture.png

處理交換文件和分區

v 交換分區是系統RAM的補充 v不能存放數據  直接進行數據交換

 基本設置包括:

 • 創建交換分區或者文件

 • 使用mkswap寫入特殊簽名

 • /etc/fstab文件中添加適當的條目

 • 使用swapon -a 激活交換空間

掛載交換分區

指明優先級swapon -p PRIORITY:指定優先級 /etc/fstab:pri=value

使用文件作爲交換分區

--生成文件    大小1G

[root@centos7 ~]$dd if=/dev/zero of=swapfile bs=1M count=1024

1024+0 records in

1024+0 records out

1073741824 bytes (1.1 GB) copied, 29.1077 s, 36.9 MB/s

--將生成的文件格式化成交換分區:

[root@centos7 ~]$mkswap swapfile

Setting up swapspace version 1, size = 1048572 KiB

no label, UUID=863bfe20-417e-4905-af91-603e2a1d48f9

--啓動swapfile分區 並查看狀態

[root@centos7 ~]$swapon swapfile

swapon: /root/swapfile: insecure permissions 0644, 0600 suggested. 建議修改權限爲0600

--重啓生效寫入/etc/fstab   

echo "UUID=863bfe20-417e-4905-af91-603e2a1d48f9 swap swap defaults 0 0">>/etc/fstab

 

刪除交換分區文件
(1)回收交換文件
 swapoff ~/swapfile

(2 )去除/etc/fstab中的該行

(3)刪除該文件

   rm ~/swapfile

                                                          

使用磁盤作爲交換分區

--創建sdc3 分區作爲swap分區

[root@centos7 ~]$fdisk /dev/sdc

--修改爲swap分區

Command (m for help): t               指定掛載選項

Partition number (1-3, default 3): 3

Hex code (type L to list all codes): 82           centos78200

Untitled picture.png

--格式化分區使其生效 相對於構建文件系統

[root@centos7 ~]$mkswap /dev/sdc3

Setting up swapspace version 1, size = 10484732 KiB

no label, UUID=b95483f9-351d-4e26-96fc-06055a19f321

[root@centos7 ~]$swapon -s

Filename                                Type                Size        Used        Priority 優先級

/dev/sda3                                      partition        1952764        57132        -1

/root/swapfile                                 file                       1048572        0            -2

/dev/sdc3                                      partition        10484732        0        -3

--在/etc/fstab下修改配置文件 並指明優先級

[root@centos7 ~]swapon -p 100 /dev/sdc3

Untitled picture.png

--查看swap分區使用狀況

[root@centos7 ~]$free -m

              total        used        free      shared  buff/cache   available

Mem:           1824         575          75          16        1174        1017

Swap:         13169          55       13114

--關機交換分區

[root@centos7 ~]$swapoff /dev/sdc3

swap能應物理內存的使用情況  free命令中swap使用率較高時,說明內存不足,須加內存

 

光盤掛載

 mount /dev/cdrom MOUNT_POINT  

 /dev/cdrom(掛載盤)  通用  軟連接於sr0

創建ISO文件 cp /dev/cdrom /root/centos7.iso

mkisofs  -r  -o  /root/etc.iso /etc 針對etc 打包成rootetc.iso文件

設置光盤掛載

Untitled picture.png

mount /dev/cdrom /mnt/cdrom

未命名圖片.png

未命名圖片.png

開啓自動掛載

在 7中 systemctl start autofs  沒有此服務  安裝 autofs包  systemctl enable autofs 開機自啓

     6: service autofs start

#cd /misc/cd

Untitled picture.png

寫入/etc/fstab配置文件

 練習:

1、創建一個2G的文件系統,塊大小爲2048byte,預留1%可用空間,文件系統ext4,卷標爲TEST,要求此分區開機後自動掛載至/test目錄,且默認有acl掛載選項

mkfs.ext4 -b 2048 -m 1 -O acl  /dev/sdb1 -L TEST   -L TEST 需跟在後面

mount /dev/sdb1 /test

/dev/sdc2                                 /test                    ext4     defaults,acl           0 0  

2、寫一個腳本,完成如下功能:

(1) 列出當前系統識別到的所有磁盤設備

(2) 如磁盤數量爲1,則顯示其空間使用信息

否則,則顯示最後一個磁盤上的空間使用信息

Untitled picture.png

3.實現CentOS-6.9-x86_64-bin-DVD1 CentOS-6.9-x86_64-bin-DVD2 兩張光盤合爲一張iso鏡像文件 並設置爲yum

 cp centos6-DVD1

[root@centos6 ~]#mkdir centos6

[root@centos6 ~]#cp -r /media/CentOS_6.9_Final/* centos6

[root@centos6 ~]#ls centos6

CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6

EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6

EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6

GPL              repodata                  TRANS.TBL

images           RPM-GPG-KEY-CentOS-6

掛載centos6-DVD2  dvd2dvd1Packages下文件不同

[root@centos6 ~]#cp -r /media/CentOS_6.9_Final/Packages/* centos6

[root@centos6 ~]#./mkdvdiso.sh centos6 /app/CentOS-6-x86_64-Everything.iso

Error: /usr/bin/implantisomd5 Not Found!

Please install isomd5sum and try again.

[root@centos6 ~]#yum install isomd5sum

[root@centos6 ~]#./mkdvdiso.sh centos6 /app/CentOS-6-x86_64-Everything.iso

 

 

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