溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中文件存儲(chǔ)方式和磁盤(pán)分區(qū)的邏輯組成

發(fā)布時(shí)間:2020-05-26 15:47:16 來(lái)源:億速云 閱讀:410 作者:鴿子 欄目:系統(tǒng)運(yùn)維

在Linux中,文件是如何存儲(chǔ)的,磁盤(pán)分區(qū)的邏輯組成是如何實(shí)現(xiàn)的,怎么對(duì)磁盤(pán)進(jìn)行分區(qū)、格式化、掛載?

  1. 文件是如何存儲(chǔ)的  塊組  超級(jí)塊   塊組描述符號(hào)
    文件系統(tǒng)先是分成了多個(gè)塊組和超級(jí)塊。每個(gè)塊組分別包含了inode和data block,每個(gè)塊組也包含了inode bitmap和block bitmap;每個(gè)塊組還包括了塊組描述符。
    超級(jí)塊包括的信息: 卷標(biāo)、掛載時(shí)間、UUID、魔數(shù)、文件系統(tǒng)特性、掛載的默認(rèn)選項(xiàng)、文件系統(tǒng)狀態(tài)、OS類(lèi)型、Inode和Block的相關(guān)數(shù)量、大小、可用數(shù)量、 保留的空間等信息。使用tune2fs -l  /dev/sda3來(lái)查看超級(jí)塊的信息。
    GDT:記錄了未使用的inodes數(shù)量,inode bitmap和datablock bitmap的位置,inode表的位置,空閑的block和inode數(shù)量。dumpe2fs /dev/sda3 | less    也可以使用-h參數(shù)

  2. 鏈接文件的兩種,分別有什么特性
    硬鏈接:指向同一個(gè)inode的多個(gè)文件路徑
    特性:目錄不支持創(chuàng)建硬鏈接,不能跨分區(qū)創(chuàng)建硬鏈接,創(chuàng)建硬鏈接會(huì)增加inode引用計(jì)數(shù)。
    ln passwd.back  passwd.back2

軟鏈接:指向一個(gè)文件路徑的另一個(gè)文件路徑
一個(gè)正常的文件,其inode的指針指向的是datablock的位置,而軟鏈接則是指向了另一個(gè)文件的路徑。軟鏈接在文件大小是它指向的文件路徑的字節(jié)數(shù)。
ln -s passwd.back passwd.sylink

[root@localhost tmp]# ls -il
總用量 12
33554511 -rwx------. 1 root root  836 2月  29 09:50 ks-script-XVVd4f
33554501 -rw-r--r--. 2 root root 1099 3月   1 11:37 passwd.back
33554501 -rw-r--r--. 2 root root 1099 3月   1 11:37 passwd.back2
33578842 lrwxrwxrwx. 1 root root   11 3月   1 11:38 passwd.sylink -> passwd.back

  1. 分區(qū)格式化mke2fs
    mke2fs [OPTIONS]  device
    -t {ext2|ext3|ext4}:指明要?jiǎng)?chuàng)建的文件系統(tǒng)類(lèi)型
    mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4
    -b {1024|2048|4096}:指明文件系統(tǒng)的塊大??;
    -L LABEL:指明卷標(biāo);
    -j:創(chuàng)建有日志功能的文件系統(tǒng)ext3;
    mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3
    -i #:bytes-per-inode,指明inode與字節(jié)的比率;即每多少字節(jié)創(chuàng)建一個(gè)Indode;
    默認(rèn)情況下,每16K字節(jié)一個(gè)inode
    -N #:直接指明要給此文件系統(tǒng)創(chuàng)建的inode的數(shù)量;
    -m #:指定預(yù)留的空間,百分比;      
    -O [^]FEATURE:以指定的特性創(chuàng)建目標(biāo)文件系統(tǒng);

[root@localhost tmp]# mke2fs -t ext3 -b 4096 -L lq_data -i 32768 -m 3 /dev/sda3
mke2fs 1.42.9 (28-Dec-2013)
文件系統(tǒng)標(biāo)簽=lq_data
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
157286 blocks (3.00%) reserved for the super user
第一個(gè)數(shù)據(jù)塊=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Allocating group tables: 完成                            
正在寫(xiě)入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

  1. 掌握Fdisk分區(qū)
    請(qǐng)實(shí)驗(yàn)完成

  2. 元數(shù)據(jù)區(qū)存放了什么
    元數(shù)據(jù)區(qū)存儲(chǔ)了:inode  inode位圖和塊位圖
    數(shù)據(jù)存儲(chǔ)區(qū)則是磁盤(pán)塊。
    inode存儲(chǔ)了文件的權(quán)限和屬性相關(guān)信息??梢允褂?stat /etc/passwd來(lái)查看文件的元數(shù)據(jù)信息。

  3. 如何讓內(nèi)核識(shí)別新的分區(qū)  parx   kpartx
    cat /proc/partitions
    當(dāng)我們使用fdisk對(duì)一個(gè)磁盤(pán)進(jìn)行了分區(qū),并且使用mke2fs工具對(duì)分區(qū)進(jìn)行了格式化以后,需要讓內(nèi)核識(shí)別我們的新分區(qū)。
    此時(shí),可以使用cat /proc/partitions來(lái)看一下,內(nèi)核有沒(méi)有識(shí)別到這個(gè)分區(qū)。
    如果沒(méi)有識(shí)別,讓內(nèi)核重讀一下分區(qū)信息。

A.  partx - tell the Linux kernel about the presence and numbering of on-disk partitions

-a     Add the specified partitions, or read the disk and add all partitions.

     用法:   partx  -a /dev/sda

B. kpartx - Create device maps from partition tables
-a     Add partition mappings
用法: kpartx -a /dev/sda

如果一次沒(méi)有刷出來(lái),請(qǐng)?jiān)偎⒁淮巍?/p>

  1. 創(chuàng)建交換分區(qū)并生效
    mkswap  /dev/sda6
    swapon
    創(chuàng)建一個(gè)5G的交換分區(qū)

  2. blkid   定位或顯示塊設(shè)備的屬性。
    [root@localhost ~]# blkid /dev/sda3
    /dev/sda3: LABEL="lq_data" UUID="f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2" TYPE="ext3"

[root@localhost ~]# blkid -L lq_data
/dev/sda3

[root@localhost ~]# blkid -U f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2
/dev/sda3

[root@localhost ~]# blkid -t TYPE=ext3
/dev/sda3: LABEL="lq_data" UUID="f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2" TYPE="ext3

  1. e2label   查看和設(shè)置卷標(biāo),如果不跟卷標(biāo)則是查看卷標(biāo),如果跟卷標(biāo),則表示設(shè)置新卷標(biāo)。
    e2label     device     [LABEL]

[root@localhost ~]# e2label /dev/sda3
lq_data
[root@localhost ~]# e2label /dev/sda3 DATA
[root@localhost ~]# e2label /dev/sda3
DATA
[root@localhost ~]# blkid /dev/sda3
/dev/sda3: LABEL="DATA" UUID="f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2" TYPE="ext3"

  1. tune2fs:在ext系列文件系統(tǒng)上調(diào)整文件系統(tǒng)的參數(shù),其中作用最大的是-O和-o
    -l  查看超級(jí)塊的內(nèi)容
    -j  將ext2升級(jí)為ext3,無(wú)損升級(jí)
    -L  設(shè)置卷標(biāo)
    -m  不格式化,調(diào)整預(yù)留的空間的百分比,默認(rèn)為5%
    -O  [^]feature  調(diào)整指定特性
    -o  調(diào)整默認(rèn)掛載選項(xiàng)
    tune2fs -o acl /dev/sda5

[root@localhost ~]# mke2fs -t ext2 -L TEST -m 10 /dev/sda3
接下來(lái),我們通過(guò)tune2fs來(lái)調(diào)整文件系統(tǒng)的屬性,我先嘗試在掛載狀態(tài)下進(jìn)行。

[root@localhost ~]# mount /dev/sda3 /mnt
A. 將文件系統(tǒng)類(lèi)型升級(jí)成ext3
[root@localhost ~]# tune2fs -j /dev/sda3
tune2fs 1.42.9 (28-Dec-2013)
Creating journal inode: 完成
[root@localhost ~]# blkid /dev/sda3
/dev/sda3: LABEL="TEST" UUID="96361554-d8a3-43cb-860d-45ce26daaeff" SEC_TYPE="ext2" TYPE="ext3"

B. 設(shè)置卷標(biāo)為Corun
[root@localhost ~]# tune2fs -L Corun /dev/sda3
tune2fs 1.42.9 (28-Dec-2013)
[root@localhost ~]# blkid /dev/sda3
/dev/sda3: LABEL="Corun" UUID="96361554-d8a3-43cb-860d-45ce26daaeff" SEC_TYPE="ext2" TYPE="ext3"

C. 更改預(yù)留的空間百分比為2%
[root@localhost ~]# tune2fs -m 2 /dev/sda3
tune2fs 1.42.9 (28-Dec-2013)
Setting reserved blocks percentage to 2% (104857 blocks)

  1. dumpe2fs: 顯示ext系列文件系統(tǒng)的屬性信息
    dumpe2fs /dev/sda5
    dumpe2fs -h /dev/sda5

  2. fsck和e2fsck

    ext系列文件系統(tǒng)的專(zhuān)用工具:
    e2fsck : check a Linux ext2/ext3/ext4 file system
    e2fsck [OPTIONS]  device
    -y:對(duì)所有問(wèn)題自動(dòng)回答為yes;
    -f:即使文件系統(tǒng)處于clean狀態(tài),也要強(qiáng)制進(jìn)行檢測(cè);

    fsck:check and repair a Linux file system
    -t fstype:指明文件系統(tǒng)類(lèi)型;
    fsck -t ext4 = fsck.ext4
    -a:無(wú)須交互而自動(dòng)修復(fù)所有錯(cuò)誤;
    -r:交互式修復(fù);

  3. 文件系統(tǒng)的掛載與卸載    
    mount DEVICE DIR
    umount  DEVICE|DIR

示例:
mount /dev/sda3 /mnt
umount /dev/sda3

南要注意的是:掛載點(diǎn)應(yīng)該是一個(gè)空目錄,推薦將掛載點(diǎn)放置在根所在的文件系統(tǒng)上。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI