精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux高級文件系統管理詳解

馬哥Linux運維 ? 來源:博客園 ? 2024-07-16 16:31 ? 次閱讀

閱讀目錄

檢查內核是否支持配額

檢查指定分區(qū)的掛載屬性是否滿足條件

quotacheck 生成用戶和組的配置文件

edquota 編輯配額文件,設置指定限制大小

啟動quota配額管理

關閉quota配額管理

quota 查看指定用戶和組的配額信息

repquota 查看指定分區(qū)的磁盤配額

setquota 非交互設置磁盤配額命令

磁盤配額小實驗

PV 物理卷創(chuàng)建與移除

VG 卷組創(chuàng)建與移除

LV 邏輯卷創(chuàng)建與移除

LV 容量增加 (將LV的容量增加5G的空間)

LV 容量縮小(將LV的容量縮小5G的空間)

LV 快照功能

Mdadm 命令解析

構建一個RAID 5

RAID 仿真救援模式

如果您的 Linux 服務器有多個用戶經常存取數據時,為了維護所有使用者在硬盤容量的公平使用,磁盤配額 (Quota) 就是一項非常有用的工具,另外,如果你的用戶常常抱怨磁盤容量不夠用,那么更進階的文件系統就得要學習,本章我們會介紹磁盤陣列 (RAID),及邏輯卷軸文件系統 (LVM),這些工具都可以幫助你管理與維護使用者可用的磁盤容量.

Quota 磁盤配額配置

Quota 這個玩意兒就字面上的意思來看,就是有多少『限額』的意思啦,如果是用在零用錢上面,就是類似『有多少零用錢一個月』的意思之類的,如果是在計算機主機的磁盤使用量上呢? 以 Linux 來說,就是有多少容量限制的意思,我們可以使用 quota 來讓磁盤的容量使用較為公平,下面我們會介紹什么是 quota 然后以一個完整的范例來介紹 quota 的使用作用.

由于Linux是一個多用戶管理的操作系統,而Linux默認情況下并不限制每個用戶使用磁盤空間的大小,假如某個用戶疏忽或者惡意占滿磁盤空間,將導致系統磁盤無法寫入甚至崩潰;為了保證系統磁
盤的有足夠的剩余空間,我們需要對用戶和組進行磁盤空間使用限制。

磁盤配額限制類型:

? 限制用戶和組,對磁盤空間的使用量
? 限制用戶和組,在磁盤內創(chuàng)建文件的個數

磁盤配額限制級別:

? 軟限制:低級限制,此限制可以突破,突破時會被警告,超出部分會有寬限天數,寬限天數到期后超出部分被清空,軟限制不能超過硬限制
? 硬限制:絕對限制,此限制不會被突破,達到指定限制后無法使用更多空間
? 寬限天數:當有數據超過軟限制后,超出部分會被計時,寬限天數到期后超出部分數據將被清空,寬限天數默認是7天
注:磁盤配額是針對分區(qū)進行設置的,無法實現,"某用戶在系統中共計只能使用50MB磁盤空間",只能設置某用戶在/home分區(qū)能使用30M這樣的限制.切記:磁盤配額是針對分區(qū)的!

精簡模式下沒有此命令,執(zhí)行 yum install -y quota 安裝

回到頂部

檢查內核是否支持配額

[root@localhost ~]# cat /boot/config-3.10.0-693.el7.x86_64 |grep "CONFIG_QUOTA"
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y

回到頂部

檢查指定分區(qū)的掛載屬性是否滿足條件

[root@localhost ~]# dumpe2fs -h /dev/vdb |grep "Default mount options"
dumpe2fs 1.42.9 (28-Dec-2013)
Default mount options:    user_xattr acl
 
#檢查結果中是否包含,usrquota,grpquota兩個掛載屬性

回到頂部

quotacheck 生成用戶和組的配置文件

[root@localhost ~]# quotacheck --help
Utility for checking and repairing quota files.
quotacheck [-gucbfinvdmMR] [-F ] filesystem|-a

語法格式:[ quota [選項] [分區(qū)名] ]

        -a      #掃描/etc/mtab文件中所有啟用磁盤配額功能的分區(qū).如果加入此參數,命令后面就不需要加入分區(qū)名了
        -u      #建立用戶配額的配置文件,即生成aquota.user
        -g      #建立組配額的配置文件,即aquota.group
        -v      #顯示掃描過程
        -c      #清除原有的配置文件,重新建立新的配置文件

回到頂部

edquota 編輯配額文件,設置指定限制大小

[root@localhost ~]# edquota --help
edquota: Usage:
        edquota [-rm] [-u] [-F formatname] [-p username] [-f filesystem] username ...
        edquota [-rm] -g [-F formatname] [-p groupname] [-f filesystem] groupname ...
        edquota [-u|g] [-F formatname] [-f filesystem] -t
        edquota [-u|g] [-F formatname] [-f filesystem] -T username|groupname ...

語法格式:[ edquota [選項] [用戶名或組名] ]

        -u      #用戶名
        -g      #組名
        -t      #設定寬限時間
        -p      #復制磁盤配額規(guī)則,不需要每一個用戶或者組都手動設置一遍
                #edquota        -p 模板用戶     -u 目標用戶
 
#注:配置文件中所寫大小默認單位KB

回到頂部

啟動quota配額管理

[root@localhost ~]# quotaon --help
quotaon: Usage:
        quotaon [-guvp] [-F quotaformat] [-x state] -a
        quotaon [-guvp] [-F quotaformat] [-x state] filesys ...

語法格式:[ quotaon [選項] [分區(qū)名] ]

        -a      #根據/etc/mtab文件啟動所有分區(qū)的磁盤配額(不寫分區(qū)名)
        -u      #啟動用戶的磁盤配額
        -g      #啟動組的磁盤配額
        -v      #顯示啟動過程信息

回到頂部

關閉quota配額管理

[root@localhost ~]# quotaoff --help
quotaoff: Usage:
        quotaoff [-guvp] [-F quotaformat] [-x state] -a
        quotaoff [-guvp] [-F quotaformat] [-x state] filesys ...

語法格式:[ quotaoff [選項] [分區(qū)名] ]

        -a      #根據/etc/mtab文件關閉所有分區(qū)的磁盤配額(不寫分區(qū)名)
        -u      #關閉用戶的磁盤配額
        -g      #關閉組的磁盤配額
        -v      #顯示關閉過程信息

回到頂部

quota 查看指定用戶和組的配額信息

[root@localhost ~]# quota --hlep
quota: unrecognized option '--hlep'
quota: Usage: quota [-guqvswim] [-l | [-Q | -A]] [-F quotaformat]
        quota [-qvswim] [-l | [-Q | -A]] [-F quotaformat] -u username ...
        quota [-qvswim] [-l | [-Q | -A]] [-F quotaformat] -g groupname ...
        quota [-qvswugQm] [-F quotaformat] -f filesystem ...

語法格式:[ quota [選項] [用戶名] ]

        -u      #用戶名
        -g      #組名
        -v      #顯示詳細信息
        -s      #以常見單位顯示大小

回到頂部

repquota 查看指定分區(qū)的磁盤配額

[root@localhost ~]# repquota --help
repquota: Utility for reporting quotas.
Usage:
repquota [-vugsi] [-c|C] [-t|n] [-F quotaformat] (-a | mntpoint)

語法格式:[ repquota [選項] [分區(qū)名] ]

        -u      #查詢用戶配額
        -g      #查詢組配額
        -v      #顯示詳情
        -s      #以常見單位顯示

回到頂部

setquota 非交互設置磁盤配額命令

[root@localhost ~]# setquota --help
setquota: Usage:
  setquota [-u|-g] [-rm] [-F quotaformat] 
            -a|...
  setquota [-u|-g] [-rm] [-F quotaformat] <-p protouser|protogroup>  -a|...
  setquota [-u|-g] [-rm] [-F quotaformat] -b [-c] -a|...
  setquota [-u|-g] [-F quotaformat] -t   -a|...
  setquota [-u|-g] [-F quotaformat]  -T   -a|...

setquota -u 用戶名 軟(容) 硬(容) 軟(數) 硬(數) 分區(qū)名
 
注:這樣的非交互式的命令更適合寫入腳本,而且假如有很多用戶的磁盤配額配置相同也可以用復制來實現。

回到頂部

磁盤配額小實驗

? 這里有一塊未分區(qū)的磁盤/dev/sdb,手動分區(qū)并格式化.
? 將磁盤配額開啟,并寫入開機自啟動列表.
? 創(chuàng)建lyshark用戶,和temp組.
? 配置lyshark的軟限制200M,硬限制500M,配置temp組軟限制100M,硬限制200M.

1.檢查系統是否支持配額

[root@localhost ~]# cat /boot/config-3.10.0-862.el7.x86_64 |grep "CONFIG_QUOTA"
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y

2.查看磁盤信息

[root@localhost ~]# ll /dev/sd*
brw-rw---- 1 root disk 8,  0 6月  24 09:14 /dev/sda
brw-rw---- 1 root disk 8,  1 6月  24 09:14 /dev/sda1
brw-rw---- 1 root disk 8,  2 6月  24 09:14 /dev/sda2
brw-rw---- 1 root disk 8, 16 6月  24 09:14 /dev/sdb

3.磁盤分區(qū)/dev/sdb,并格式化為ext4格式

[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mkpart
Partition name?  []? sdb1
File system type?  [ext2]? ext2
Start? 1M
End? 10000M
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  10.0GB  9999MB  ext4         sdb1

(parted) q
Information: You may need to update /etc/fstab.

[root@localhost ~]# mkfs.ext4 /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
610800 inodes, 2441216 blocks
122060 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
75 block groups
32768 blocks per group, 32768 fragments per group
8144 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

4.創(chuàng)建掛載點,并掛載設備

[root@localhost ~]# mkdir /sdb1
[root@localhost ~]# mount /dev/sdb1 /sdb1/

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.4G  6.7G  17% /
devtmpfs                  98M     0   98M   0% /dev
tmpfs                    110M     0  110M   0% /dev/shm
tmpfs                    110M  5.5M  104M   6% /run
tmpfs                    110M     0  110M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     22M     0   22M   0% /run/user/0
/dev/sr0                 4.2G  4.2G     0 100% /mnt
/dev/sdb1                9.1G   37M  8.6G   1% /sdb1

5.檢查分區(qū)是否支持配額 (主要看有沒有usrquota,grpquota)

[root@localhost ~]# dumpe2fs -h /dev/sdb1 |grep "Default mount options"
dumpe2fs 1.42.9 (28-Dec-2013)
Default mount options:    user_xattr acl

[root@localhost ~]# cat /proc/mounts |grep "/dev/sdb1"
/dev/sdb1 /sdb1 ext4 rw,relatime,data=ordered 0 0

#上面沒有看到相關權限,此時我們要重新掛載一下磁盤,加上權限

[root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1

[root@localhost ~]# cat /proc/mounts |grep "/dev/sdb1"
/dev/sdb1 /sdb1 ext4 rw,relatime,quota,usrquota,grpquota,data=ordered 0 0

6.設置開機自動掛載分區(qū),并開啟配額

[root@localhost ~]# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Sep 21 20:07 13d5ccc2-52db-4aec-963a-f88e8edcf01c -> ../../sda1
lrwxrwxrwx 1 root root  9 Sep 21 20:07 2018-05-03-20-55-23-00 -> ../../sr0
lrwxrwxrwx 1 root root 10 Sep 21 20:07 4604dcf2-da39-455a-9719-e7c5833e566c -> ../../dm-0
lrwxrwxrwx 1 root root 10 Sep 21 20:47 939cbeb8-bc88-44aa-9221-50672111e123 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Sep 21 20:07 f6a4b420-aa6a-4e66-bbb3-c8e8280a099f -> ../../dm-1

[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue Sep 18 0906 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=13d5ccc2-52db-4aec-963a-f88e8edcf01c /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

UUID=7d7f22ed-466e-4205-8efe-1b6184dc5e1b swap swap defaults 0 0
UUID=939cbeb8-bc88-44aa-9221-50672111e123 /sdb1   ext4   defaults,usrquota,grpquota  0 0

[root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1

7.生成配額文件 quotackeck -ugv[分區(qū)名]

[root@localhost ~]# quotacheck -ugv /dev/sdb1

quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/sdb1] done
quotacheck: Cannot stat old user quota file /sdb1/aquota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file /sdb1/aquota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file /sdb1/aquota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file /sdb1/aquota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Checked 3 directories and 0 files
quotacheck: Old file not found.
quotacheck: Old file not found.

8.編輯限制,edquota -ugtp [用戶名/組名]

配置lyshark的軟限制200M,硬限制500M

[root@localhost ~]# edquota -u lyshark

Disk quotas for user lyshark (uid 1000):

     ↓文件系統                         軟(容量)   硬(容量)    I節(jié)點      軟(數)   硬(數)
  Filesystem              blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                 0          200M       500M          0        0        0

配置temp組軟限制100M,硬限制200M.

[root@localhost ~]# edquota -g temp

Disk quotas for group temp (gid 1001):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                         0     102400     204800          0        0        0

9.開啟配額,quota on/off -augv

[root@localhost ~]# quotaon -augv
/dev/sdb1 [/sdb1]: group quotas turned on
/dev/sdb1 [/sdb1]: user quotas turned on

10.查看指定用戶或組的配額,quota -ugvs

[root@localhost ~]# quota -ugvs

Disk quotas for user root (uid 0):
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1     20K      0K      0K               2       0       0
Disk quotas for group root (gid 0):
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1     20K      0K      0K               2       0       0

LVM 邏輯卷管理器

LVM(Logical Volume Manager)邏輯卷管理,它是Linux環(huán)境下對磁盤分區(qū)進行管理的一種機制,普通的磁盤分區(qū)管理方式在分區(qū)劃分好之后就無法改變其大小,當一個邏輯分區(qū)存放不下某個文件時,解決的方法通常是使用符號鏈接,或者使用調整分區(qū)大小的工具,但這只是暫時解決辦法,沒有從根本上解決問題.簡單來說LVM就是將物理磁盤融合成一個或幾個大的虛擬磁盤存儲池,按照我們的需求去存儲池劃分空間來使用,由于是虛擬的存儲池,所以劃分空間時可以自由的調整大小,如下:

LVM的組成部分:

? 物理卷(PV,Physical Volume):由磁盤或分區(qū)轉化而成
? 卷組(VG,Volume Group):將多個物理卷組合在一起組成了卷組,組成同一個卷組的可以是同一個硬盤的不同分區(qū),也可以是不同硬盤上的不同分區(qū),我們通常把卷組理解為一塊硬盤.
? 邏輯卷(LV,Logical Volume):把卷組理解為硬盤的話,那么我們的邏輯卷則是硬盤上的分區(qū),邏輯卷可以進行格式化,存儲數據.
? 物理擴展(PE,Physical Extend):PE卷組的最小存儲單元,PE所在的位置是VG卷組,即硬盤上,那么我們可以把PE理解為硬盤上的扇區(qū),默認是4MB,可自由配置.

這里準備好4塊硬盤,無需分區(qū)與格式化.

[root@localhost ~]# ll /dev/sd[b-z]

brw-rw---- 1 root disk 8, 16 Sep 21 22:04 /dev/sdb
brw-rw---- 1 root disk 8, 32 Sep 21 22:04 /dev/sdc
brw-rw---- 1 root disk 8, 48 Sep 21 22:04 /dev/sdd
brw-rw---- 1 root disk 8, 64 Sep 21 22:04 /dev/sde

回到頂部

PV 物理卷創(chuàng)建與移除

PV的創(chuàng)建

pvcreate [分區(qū)路徑],[分區(qū)路徑][.......]

[root@localhost ~]# ll /dev/sd[b-z]
brw-rw---- 1 root disk 8, 16 Sep 21 22:04 /dev/sdb
brw-rw---- 1 root disk 8, 32 Sep 21 22:04 /dev/sdc
brw-rw---- 1 root disk 8, 48 Sep 21 22:04 /dev/sdd
brw-rw---- 1 root disk 8, 64 Sep 21 22:04 /dev/sde

[root@localhost ~]# pvcreate /dev/sdb /dev/sdc           #此處拿3塊硬盤創(chuàng)建
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
  Physical volume "/dev/sdd" successfully created.

[root@localhost ~]# pvs                                  #查詢創(chuàng)建好的硬盤
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <9.00g     0
  /dev/sdb          lvm2 ---  10.00g 10.00g
  /dev/sdc          lvm2 ---  10.00g 10.00g
  /dev/sdd          lvm2 ---  10.00g 10.00g

PV的移除

pvremove [分區(qū)路徑]

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <9.00g     0
  /dev/sdb          lvm2 ---  10.00g 10.00g
  /dev/sdc          lvm2 ---  10.00g 10.00g
  /dev/sdd          lvm2 ---  10.00g 10.00g

[root@localhost ~]# pvremove /dev/sdd                       #移除/dev/sdd
  Labels on physical volume "/dev/sdd" successfully wiped.

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <9.00g     0
  /dev/sdb          lvm2 ---  10.00g 10.00g
  /dev/sdc          lvm2 ---  10.00g 10.00g

回到頂部

VG 卷組創(chuàng)建與移除

創(chuàng)建VG卷組,VG卷組要在PV中選擇

vgcreate -s [指定PE大小] [VG卷組名] [分區(qū)路徑] [分區(qū)路徑][.....]

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <9.00g     0
  /dev/sdb          lvm2 ---  10.00g 10.00g
  /dev/sdc          lvm2 ---  10.00g 10.00g

[root@localhost ~]# vgcreate -s 4M my_vg /dev/sdb /dev/sdc        #此處就是創(chuàng)建一個VG卷組
  Volume group "my_vg" successfully created

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <9.00g     0
  my_vg    2   0   0 wz--n- 19.99g 19.99g                         #這就是VG卷組,名字是my_vg

給當前my_vg卷組,添加一塊新的PV,也就是擴展卷組

vgextend [卷組名] [物理卷分區(qū)]

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   <9.00g      0
  /dev/sdb   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdc   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdd          lvm2 ---   10.00g  10.00g               #這個物理卷沒有劃分卷組

[root@localhost ~]# vgextend my_vg /dev/sdd                 #添加一個PV到指定卷組
  Volume group "my_vg" successfully extended

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   <9.00g      0
  /dev/sdb   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdc   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdd   my_vg  lvm2 a--  <10.00g <10.00g               #已被劃分到my_vg卷組

在VG卷組里移除一個PV(移除單個PG)

vgreduce [卷組名] [物理卷分區(qū)]

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   <9.00g      0
  /dev/sdb   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdc   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdd   my_vg  lvm2 a--  <10.00g <10.00g

[root@localhost ~]# vgreduce my_vg /dev/sdd                #將/dev/sdd從my_vg卷組里移除
  Removed "/dev/sdd" from volume group "my_vg"

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   <9.00g      0
  /dev/sdb   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdc   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdd          lvm2 ---   10.00g  10.00g

移除整個VG卷組

vgremove [卷組名]

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <9.00g     0
  my_vg    2   0   0 wz--n- 19.99g 19.99g

[root@localhost ~]# vgremove my_vg                    #移除整個卷組
  Volume group "my_vg" successfully removed

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <9.00g    0
[root@localhost ~]#

移除空的物理卷VG

vgreduce -a [卷組名]

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n-  <9.00g      0
  my_vg    3   0   0 wz--n- <29.99g <29.99g

[root@localhost ~]# vgreduce -a my_vg                 #只移除空卷組
  Removed "/dev/sdb" from volume group "my_vg"
  Removed "/dev/sdc" from volume group "my_vg"

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n-  <9.00g      0
  my_vg    1   0   0 wz--n- <10.00g <10.00g

回到頂部

LV 邏輯卷創(chuàng)建與移除

創(chuàng)建LVM

lvcreate -L [指定大小] -n [LV名字] [VG卷組:從哪個卷組里劃分]

[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <8.00g
  swap centos -wi-ao----  1.00g

[root@localhost ~]# lvcreate -L 10G -n my_lv my_vg            #創(chuàng)建LVM邏輯卷
  Logical volume "my_lv" created.

[root@localhost ~]# lvs
  LV    VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root  centos -wi-ao---- <8.00g
  swap  centos -wi-ao----  1.00g
  my_lv my_vg  -wi-a----- 10.00g

格式化并掛載使用

[root@localhost ~]# mkdir /LVM                            #首先創(chuàng)建一個掛載點
[root@localhost ~]#
[root@localhost ~]# mkfs.ext4 /dev/my_vg/my_lv            #格式化LVM分區(qū)
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

[root@localhost ~]# mount /dev/my_vg/my_lv /LVM/                  #掛載LVM
[root@localhost ~]#
[root@localhost ~]# df -h                                         #查看結果
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
devtmpfs                  98M     0   98M   0% /dev
tmpfs                    110M     0  110M   0% /dev/shm
tmpfs                    110M  5.5M  104M   5% /run
tmpfs                    110M     0  110M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     22M     0   22M   0% /run/user/0
/dev/mapper/my_vg-my_lv  9.8G   37M  9.2G   1% /LVM                ← 掛載成功

回到頂部

LV 容量增加 (將LV的容量增加5G的空間)

注意:這里擴展,要先擴展LVM,然后再擴展文件系統

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
devtmpfs                  98M     0   98M   0% /dev
tmpfs                    110M     0  110M   0% /dev/shm
tmpfs                    110M  5.5M  104M   5% /run
tmpfs                    110M     0  110M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     22M     0   22M   0% /run/user/0
/dev/mapper/my_vg-my_lv  9.8G   37M  9.2G   1% /LVM                  ←此處是10G

[root@localhost ~]# lvextend -L +5G /dev/my_vg/my_lv                 #執(zhí)行增加命令,從VG卷組劃分5G
  Size of logical volume my_vg/my_lv changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840).
  Logical volume my_vg/my_lv successfully resized.

[root@localhost ~]# resize2fs -f /dev/my_vg/my_lv                    #擴展文件系統
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/my_vg/my_lv is mounted on /LVM; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 2
The filesystem on /dev/my_vg/my_lv is now 3932160 blocks long.

[root@localhost ~]# df -h                                            #驗證擴展結果
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
devtmpfs                  98M     0   98M   0% /dev
tmpfs                    110M     0  110M   0% /dev/shm
tmpfs                    110M  5.5M  104M   5% /run
tmpfs                    110M     0  110M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     22M     0   22M   0% /run/user/0
/dev/mapper/my_vg-my_lv   15G   41M   14G   1% /LVM                  ←此處已經從10G 增加到15G

回到頂部

LV 容量縮小(將LV的容量縮小5G的空間)

注意:這里縮小,要卸載文件系統,檢查分區(qū),然后縮小文件系統,最后再縮小LVM

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
devtmpfs                  98M     0   98M   0% /dev
tmpfs                    110M     0  110M   0% /dev/shm
tmpfs                    110M  5.5M  104M   5% /run
tmpfs                    110M     0  110M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     22M     0   22M   0% /run/user/0
/dev/mapper/my_vg-my_lv   15G   41M   14G   1% /LVM                 ←此處顯示15G空間

[root@localhost ~]# umount /dev/my_vg/my_lv                         #卸載LVM卷組

[root@localhost ~]# e2fsck -f /dev/my_vg/my_lv                      #檢查文件系統
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/my_vg/my_lv: 11/983040 files (0.0% non-contiguous), 104724/3932160 blocks

[root@localhost ~]# resize2fs -f /dev/my_vg/my_lv 10G(減小后的大小)   #縮小文件系統
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/my_vg/my_lv to 2621440 (4k) blocks.
The filesystem on /dev/my_vg/my_lv is now 2621440 blocks long.

[root@localhost ~]# lvreduce -L 10G /dev/my_vg/my_lv                 #縮小LVM
  WARNING: Reducing active logical volume to 10.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce my_vg/my_lv? [y/n]: y                   #輸入y
  Size of logical volume my_vg/my_lv changed from 15.00 GiB (3840 extents) to 10.00 GiB (2560).
  Logical volume my_vg/my_lv successfully resized.

[root@localhost ~]# mount /dev/my_vg/my_lv /LVM/                    #掛載

[root@localhost ~]# df -h                                           #再次查看分區(qū)變化
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
devtmpfs                  98M     0   98M   0% /dev
tmpfs                    110M     0  110M   0% /dev/shm
tmpfs                    110M  5.5M  104M   5% /run
tmpfs                    110M     0  110M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     22M     0   22M   0% /run/user/0
/dev/mapper/my_vg-my_lv  9.8G   37M  9.2G   1% /LVM                 ←此處已經從15G變成10G

回到頂部

LV 快照功能

拍攝快照

lvcreate [-s 快照] -n [快照名] -L [快照大小] [指定分區(qū)] 

[root@localhost LVM]# ls
1    12  16  2   23  27  30  34  38  41  45  49  52  56  6   63  67  70  74  78  81  85  89  92  96
10   13  17  20  24  28  31  35  39  42  46  5   53  57  60  64  68  71  75  79  82  86  9   93  97
100  14  18  21  25  29  32  36  4   43  47  50  54  58  61  65  69  72  76  8   83  87  90  94  98
11   15  19  22  26  3   33  37  40  44  48  51  55  59  62  66  7   73  77  80  84  88  91  95  99

[root@localhost LVM]# lvcreate -s -n mylv_back -L 200M /dev/my_vg/my_lv            #給/LVM目錄拍攝快照
  Logical volume "mylv_back" created.

[root@localhost LVM]# lvs                                                          #查看快照
  LV        VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root      centos -wi-ao----  <8.00g
  swap      centos -wi-ao----   1.00g
  my_lv     my_vg  owi-aos---  10.00g
  mylv_back my_vg  swi-a-s--- 200.00m      my_lv  0.01                             ←此處就是快照

快照恢復

[root@localhost LVM]# ls
1    12  16  2   23  27  30  34  38  41  45  49  52  56  6   63  67  70  74  78  81  85  89  92  96
10   13  17  20  24  28  31  35  39  42  46  5   53  57  60  64  68  71  75  79  82  86  9   93  97
100  14  18  21  25  29  32  36  4   43  47  50  54  58  61  65  69  72  76  8   83  87  90  94  98
11   15  19  22  26  3   33  37  40  44  48  51  55  59  62  66  7   73  77  80  84  88  91  95  99

[root@localhost LVM]# rm -fr *                                #模擬被刪除
[root@localhost LVM]# mkdir /back                             #創(chuàng)建掛載點
[root@localhost LVM]# mount /dev/my_vg/mylv_back /back/       #掛載備份文件
[root@localhost LVM]# cp -a /back/* ./                        #復制備份文件

[root@localhost LVM]# ls
1    12  16  2   23  27  30  34  38  41  45  49  52  56  6   63  67  70  74  78  81  85  89  92  96
10   13  17  20  24  28  31  35  39  42  46  5   53  57  60  64  68  71  75  79  82  86  9   93  97
100  14  18  21  25  29  32  36  4   43  47  50  54  58  61  65  69  72  76  8   83  87  90  94  98
11   15  19  22  26  3   33  37  40  44  48  51  55  59  62  66  7   73  77  80  84  88  91  95  99

RAID 獨立磁盤冗余陣列

定義:獨立磁盤構成的具有冗余能力的陣列

磁盤陣列分類:一是外接式磁盤陣列柜、二是內接式磁盤陣列卡,三是利用軟件來仿真

1.通過把多個磁盤組織在一起作為一個邏輯卷提供磁盤跨越功能
2.通過把數據分成多個數據塊(Block)并行寫入/讀出多個磁盤以提高訪問磁盤的速度
3.通過鏡像或校驗操作提供容錯能力

注意:RAID磁盤陣列主要為了保證硬件損壞的情況下業(yè)務不會終止,無法防止誤操作

磁盤陣列的分類

1.外接式磁盤陣列柜
2.內接式磁盤陣列
3.利用軟件來仿真
注意:通常情況下,生產環(huán)境中,一般使用硬件RAID來做,這里只做了解即可

RAID磁盤陣列簡介

RAID 0 沒有奇偶校驗的 (條帶卷)
RAID 0 提高存儲性能的原理是把連續(xù)的數據分散到多個磁盤上存取,這樣系統有數據請求就可以被多個磁盤并行的執(zhí)行,每個磁盤執(zhí)行屬于它自己的那部分數據請求

RAID 1 獨立磁盤冗余陣 (鏡像卷)
RAID 1 通過磁盤數據鏡像實現數據冗余,在成對的獨立磁盤上產生互為備份的數據.當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID 1可以提高讀取性能.

RAID10 (鏡象陣列條帶)
Raid 10 是一個Raid1與Raid0的組合體,它是利用奇偶校驗實現條帶集鏡像,所以它繼承了Raid0的快速和Raid1的安全.

RAID5 分布式奇偶校驗的獨立磁盤結構(最少3塊)
RAID 5 是一種存儲性能,數據安全,和存儲成本,兼顧的存儲解決方案. RAID 5可以理解為是RAID 0和RAID 1的折中方案.

回到頂部

Mdadm 命令解析

[root@localhost ~]# mdadm --help
mdadm is used for building, managing, and monitoring
Linux md devices (aka RAID arrays)
Usage: mdadm 

mdadm --create --auto=yes /dev/md[0-9] --raid-devices=[0-n] 
--level=[015] --spare-devices=[0-n] /dev/sd[a-z]

--create       #新建RAID參數
--auto=yes     #默認配置
--raid-devices=N     #磁盤陣列數
--spare-devices=N  #備份磁盤數
--level [015]  #陣列等級
mdadm --detail       #查詢陣列信息

回到頂部

構建一個RAID 5

注意:精簡模式下,沒有安裝此命令,執(zhí)行 yum install -y mdadm 安裝


[root@localhost ~]# ls -l /dev/sd[b-z]
brw-rw---- 1 root disk 8, 16 Sep 21 23:06 /dev/sdb
brw-rw---- 1 root disk 8, 32 Sep 21 23:06 /dev/sdc
brw-rw---- 1 root disk 8, 48 Sep 21 23:06 /dev/sdd
brw-rw---- 1 root disk 8, 64 Sep 21 23:04 /dev/sde


[root@localhost ~]# mdadm --create --auto=yes /dev/md0 --level=5 
> --raid-devices=3 --spare-devices=1 /dev/sd{b,c,d,e}                  #創(chuàng)建一個RAID,其中接口是/dev/md0,等級是RAID5
mdadm: Defaulting to version 1.2 metadata                              #主磁盤數3,備份盤數1,提供sd{b,c,d,e}磁盤
mdadm: array /dev/md0 started.


[root@localhost ~]# mdadm --detail /dev/md0                            #查看陣列信息
/dev/md0:   ←設備文件名
           Version : 1.2
     Creation Time : Fri Sep 21 2309 2018   ←創(chuàng)建日期
        Raid Level : raid5                      ←RAID等級
        Array Size : 20953088 (19.98 GiB 21.46 GB)  ←可用空間
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)   ←每個設備可用空間
      Raid Devices : 3       ←RAID設備數量
     Total Devices : 4       ←全部設備數量
       Persistence : Superblock is persistent


       Update Time : Fri Sep 21 2326 2018
             State : clean, degraded, recovering
    Active Devices : 3   ←啟動磁盤
   Working Devices : 4   ←可用磁盤
    Failed Devices : 0   ←錯誤磁盤
     Spare Devices : 1   ←預備磁盤


            Layout : left-symmetric
        Chunk Size : 512K


Consistency Policy : resync


    Rebuild Status : 34% complete


              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 2ee2bcd5d3810252:23c2d5a8   ←此設備UUID
            Events : 6


    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      spare rebuilding   /dev/sdd


       3       8       64        -      spare   /dev/sde

格式化 /dev/md0并掛載使用


[root@localhost ~]# mkfs -t ext4 /dev/md0             #格式化
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
1310720 inodes, 5238272 blocks
261913 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000


Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done


[root@localhost ~]# mkdir /RAID              #新建掛載目錄
[root@localhost ~]#
[root@localhost ~]# mount /dev/md0 /RAID/    #掛載設備
[root@localhost ~]#
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
devtmpfs                  98M     0   98M   0% /dev
/dev/sr0                 4.2G  4.2G     0 100% /mnt
/dev/md0                  20G   45M   19G   1% /RAID    ←此處可看到掛載成功

回到頂部

RAID 仿真救援模式


mdadm --manage /dev/md[0-9] --add 設備 --remove 設備 --fail 設備


  --add     #將后面的設備加入md中
  --remove  #移除設備
  --fail    #設置出錯磁盤
------------------------------------------------------------
[實驗]




[root@localhost /]# mdadm --manage /dev/md0 --fail /dev/sdb         #將/dev/sdb標注為錯誤
mdadm: set /dev/sdb faulty in /dev/md0


[root@localhost /]# mdadm --detail /dev/md0                         #查看一下狀態(tài)
/dev/md0:
           Version : 1.2
     Creation Time : Fri Sep 21 23:19:09 2018
        Raid Level : raid5
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent


       Update Time : Fri Sep 21 23:50:12 2018
             State : clean, degraded, recovering
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 1  ← 出錯磁盤一個
     Spare Devices : 1


            Layout : left-symmetric
        Chunk Size : 512K


Consistency Policy : resync


    Rebuild Status : 5% complete     ←此處需要注意,他正在恢復數據,等到100%時又可以正常工作


              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 2ee2bcd5d3810252:23c2d5a8
            Events : 20


    Number   Major   Minor   RaidDevice State
       3       8       64        0      spare rebuilding   /dev/sde
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd


       0       8       16        -      faulty   /dev/sdb   ← 出錯磁盤




[root@localhost /]# mdadm --manage /dev/md0 --remove /dev/sdb            #移除這個壞掉的磁盤
mdadm: hot removed /dev/sdb from /dev/md0




[root@localhost /]# mdadm --manage /dev/md0 --add /dev/sdb               #添加一個新的磁盤mdadm: added /dev/sdb

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11123

    瀏覽量

    207919
  • 磁盤
    +關注

    關注

    1

    文章

    355

    瀏覽量

    25095
  • 文件系統
    +關注

    關注

    0

    文章

    280

    瀏覽量

    19831

原文標題:Linux 高級文件系統管理

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式Linux文件系統管理

      嵌入式 Linux 開發(fā)人員可以使用平臺映像生成器等工具獲得對構建復雜文件系統的更多控制,這使得組裝、調整和創(chuàng)建文件系統映像更容易完成。
    發(fā)表于 08-12 09:23 ?675次閱讀
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>文件系統管理</b>

    Linux文件系統管理

    Linux文件系統管理作者:吳新武,華清遠見嵌入式學院講師。Unix業(yè)界有句話叫“一切皆文件”,Linux作為一個優(yōu)秀的類Unix操作系統
    發(fā)表于 09-13 09:48

    數字電源系統管理的優(yōu)勢

    數字電源系統管理提升能源管理效率
    發(fā)表于 09-30 08:38

    系統管理的詳細設計

    系統管理的詳細設計:系統管理的總體設計,賬套管理系統授權管理,基礎數據管理
    發(fā)表于 07-06 07:28 ?0次下載

    文件系統管理操作

    為了方便用戶對設備存儲設備進行有效的管理,設備提供了文件系統功能,實現對文件和目錄的訪問管理:用戶可以通過命令行對文件進行創(chuàng)建、移動、拷貝、
    發(fā)表于 08-30 15:55 ?0次下載

    Linux系統管理員培訓視頻教程(1-10)

    Linux系統管理員培訓視頻教程(1-10)
    發(fā)表于 10-18 15:56 ?154次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>系統管理</b>員培訓視頻教程(1-10)

    Linux系統管理員培訓視頻教程(11-20)

    Linux系統管理員培訓視頻教程(11-20)
    發(fā)表于 10-18 15:58 ?127次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>系統管理</b>員培訓視頻教程(11-20)

    Linux系統管理員培訓視頻教程(31-41)

    Linux系統管理員培訓視頻教程(31-41)
    發(fā)表于 10-18 15:59 ?115次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>系統管理</b>員培訓視頻教程(31-41)

    Linux系統管理命令

    Linux系統管理命令 Linux系統管理命令  wall命令  功能:這個命令的功能是對全部已登錄的用戶發(fā)送信息,用戶可以先把要發(fā)送的信息寫好存入一個
    發(fā)表于 01-18 12:47 ?788次閱讀

    Linux系統管理技術手冊—奈米斯

    本書為奈米斯所著的 Linux 系統管理技術手冊第二版。共從二十四個章節(jié)講述了Linux系統管理技術。適合Linux
    發(fā)表于 08-10 14:16 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>系統管理</b>技術手冊—奈米斯

    RedHat系統管理

    RedHat系統管理
    發(fā)表于 12-29 11:33 ?0次下載

    Linux設備驅動開發(fā)詳解》第5章、Linux文件系統與設備文件系統

    Linux設備驅動開發(fā)詳解》第5章、Linux文件系統與設備文件系統
    發(fā)表于 10-27 14:13 ?0次下載
    《<b class='flag-5'>Linux</b>設備驅動開發(fā)<b class='flag-5'>詳解</b>》第5章、<b class='flag-5'>Linux</b><b class='flag-5'>文件系統</b>與設備<b class='flag-5'>文件系統</b>

    Linux系統管理命令整理及使用方法介紹

    linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、
    的頭像 發(fā)表于 09-23 14:55 ?6740次閱讀

    Linux應用基礎教程之Linux如何進行系統管理

    本文檔的主要內容詳細介紹的是Linux應用基礎教程之Linux如何進行系統管理主要內容包括了:1 用戶和組管理 2 軟件包管理 3 網絡通信
    發(fā)表于 11-28 15:56 ?2次下載

    嵌入式Linux文件系統管理的工具選擇

      嵌入式 Linux 開發(fā)人員可以使用平臺映像生成器等工具獲得對構建復雜文件系統的更多控制,這使得組裝、調整和創(chuàng)建文件系統映像更容易完成。
    的頭像 發(fā)表于 06-22 11:15 ?1382次閱讀
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>文件系統管理</b>的工具選擇