第 6 堂課:基礎檔案系統管理
http://linux.vbird.org/linux_basic_train/unit06.php
6.1:認識 Linux 檔案系統
6.1.1:磁碟檔名與磁碟分割
超過幾個 TB 以上的磁碟,通常預設會使用 GPT 的分割表?
2TB
某一磁碟的分割為使用 MBR 分割表,該系統當中『共有 5 個可以進行格式化』的分割槽,假設該磁碟含有 2 個主分割 (primary), 請問該磁碟的分割槽的磁碟檔名應該是如何? (假設為實體磁碟的檔名,且該系統僅有一顆磁碟時)
//TODO
某一個磁碟預設使用了 MBR 的分割表,目前僅有 2 個主分割,還留下 1TB 的容量。若管理員還有 4 個需要使用的分割槽, 每個分割槽需要大約 100GB ,你認為應該如何進行分割較佳?
//TODO
6.1.2:Linux 的 EXT2 檔案系統
Linux 的 EXT2 檔案系統家族中,格式化之後,除了 metadata 區塊之外,還有哪三個很重要的區塊?
//TODO
檔案的屬性、權限等資料主要放置於檔案系統的哪個區塊內?
//TODO
實際的檔案內容 (程式碼或者是實際資料) 放置在哪個區塊?
//TODO
每個檔案都會使用到幾個 inode 與 block ?
//TODO
Linux 的 EXT2 檔案系統家族中,以 CentOS 7 為例,inode 與 block 的容量大致為多少 byte?
//TODO
6.1.3:目錄與檔名
使用 ls -li /etc/hosts* ,觀察出現在最前面的數值,該數值即為 inode 號碼。
[root@mail ~]# ls -li /etc/hosts*
9058925 -rw-r--r--. 1 root root 191 Jun 27 2018 /etc/hosts
8392633 -rw-r--r--. 1 root root 370 Jun 7 2013 /etc/hosts.allow
8392634 -rw-r--r--. 1 root root 460 Jun 7 2013 /etc/hosts.deny
使用 student 的身份,建立 /tmp/inodecheck/ 目錄,然後觀察 /tmp/inodecheck/, /tmp/inodecheck/. 這兩個檔名的 inode 號碼
[student@mail /]$ mkdir /tmp/inodecheck/
[student@mail /]$ ls -lid /tmp/inodecheck/ /tmp/inodecheck/.
509250 drwxrwxr-x. 2 student student 6 5月 8 17:02 /tmp/inodecheck/
509250 drwxrwxr-x. 2 student student 6 5月 8 17:02 /tmp/inodecheck/.
承上,使用 ll -d 觀察 /tmp/inodecheck 的第二個欄位,亦即連結欄位的數值為多少?嘗試說明為什麼?
[student@mail /]$ ll -d /tmp/inodecheck/
drwxrwxr-x. 2 student student 6 5月 8 17:02 /tmp/inodecheck/
#有自己.跟父親..
建立 /tmp/inodecheck/check2/ 目錄,同時觀察 /tmp/inodecheck/ , /tmp/inodecheck/. , /tmp/inodecheck/check2/.. 這三個檔名的 inode 號碼, 然後觀察第二個欄位的數值變成什麼?
[student@mail /]$ ls -lid /tmp/inodecheck /tmp/inodecheck/. /tmp/inodecheck/check2/..
509250 drwxrwxr-x. 3 student student 20 5月 8 17:08 /tmp/inodecheck
509250 drwxrwxr-x. 3 student student 20 5月 8 17:08 /tmp/inodecheck/.
509250 drwxrwxr-x. 3 student student 20 5月 8 17:08 /tmp/inodecheck/check2/..
6.1.4:ln 連結檔的應用
前往 /dev/shm 建立名為 check2 的目錄,並更改工作目錄到 /dev/shm/check2 當中
[student@mail /]$ mkdir /dev/shm/check2
[student@mail /]$ cd /dev/shm/check2
將 /etc/hosts 複製到本目錄下,同時觀察檔名連結數
[student@mail check2]$ cp /etc/hosts .
[student@mail check2]$ ls -lid hosts
3524347 -rw-r--r--. 1 student student 191 5月 8 17:11 hosts
使用『 ln hosts hosts.real 』建立 hosts.real 實體連結檔,同時觀察這兩個檔案的 inode 號碼、屬性權限等,是否完全相同?為什麼?
[student@mail check2]$ ln hosts hosts.real
[student@mail check2]$ ls -li
總計 8
3524347 -rw-r--r--. 2 student student 191 5月 8 17:11 hosts
3524347 -rw-r--r--. 2 student student 191 5月 8 17:11 hosts.real
使用『 ln -s hosts hosts.symbo 』建立 hosts.symbo 符號連結,同時觀察這兩個檔案的 inode 號碼、屬性權限等,是否相同?
ln -s hosts hosts.symbo
ls -li
------------------------------------------------------------------
total 8
20111 -rw-r--r-- 2 root root 174 May 25 07:26 hosts
20111 -rw-r--r-- 2 root root 174 May 25 07:26 hosts.real
21604 lrwxrwxrwx 1 root root 5 May 25 07:31 hosts.symbo -> hosts
inode跟屬性不同
使用 cat hosts; cat hosts.real; cat hosts.symbo ,查閱檔案內容是否相同?
相同
請刪除 hosts,然後觀察 hosts.real, hosts.symbo 的 inode 號碼、連結數檔案屬性等資料,發現什麼情況?
[student@mail check2]$ rm hosts
[student@mail check2]$ ls -li
總計 4
3524347 -rw-r--r--. 1 student student 191 5月 8 17:11 hosts.real
3524620 lrwxrwxrwx. 1 student student 5 5月 8 17:14 hosts.symbo -> hosts
使用 cat hosts.real; cat hosts.symbo 發生什麼狀況?為什麼?
[student@mail check2]$ cat hosts.real
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.231.8.147 mail.want-want.com
[student@mail check2]$ cat hosts.symbo
cat: hosts.symbo: 沒有此一檔案或目錄
#可以cat hosts.real 但是不能cat hosts.symbo,因為hosts.symbo是host的連結檔
在 /dev/shm/check2 底下執行『 ln /etc/hosts . 』會發生什麼情況?分析原因為何?
[root@mail ~]# cd /dev/shm//check2/
[root@mail check2]# ln /etc/hosts .
ln: failed to create hard link './hosts' => '/etc/hosts': Invalid cross-device link
#硬連接只能在同一目錄下建立關聯
6.1.5:檔案系統的掛載
檔案系統要透過『掛載 (mount) 』之後才能夠讓作業系統存取。那麼與檔案系統掛載的掛載點是一個目錄還是檔案?
目錄
使用 df -T 指令觀察目前的系統中,屬於 xfs 檔案系統的掛載點有哪幾個?
[root@mail check2]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root xfs 14034944 1564376 12470568 12% /
devtmpfs devtmpfs 929580 0 929580 0% /dev
tmpfs tmpfs 941572 35108 906464 4% /dev/shm
tmpfs tmpfs 941572 58232 883340 7% /run
tmpfs tmpfs 941572 0 941572 0% /sys/fs/cgroup
/dev/sda1 xfs 1038336 190292 848044 19% /boot
tmpfs tmpfs 188316 0 188316 0% /run/user/0
使用 ls -lid 觀察 /, /boot, /home, /etc, /root, /proc, /sys 等目錄的 inode 號碼
[root@mail check2]# ls -lid / /boot /home /etc /root /proc /sys
64 dr-xr-xr-x. 18 root root 253 Apr 30 01:30 /
64 dr-xr-xr-x. 5 root root 4096 Jun 26 2018 /boot
8388673 drwxr-xr-x. 86 root root 8192 May 7 13:49 /etc
25173246 drwxr-xr-x. 16 root root 227 May 7 13:49 /home
1 dr-xr-xr-x. 171 root root 0 Jun 26 2018 /proc
16797761 dr-xr-x---. 4 root root 273 May 8 17:21 /root
1 dr-xr-xr-x. 13 root root 0 Jun 26 2018 /sys
為什麼 /, /boot, /home 的 inode 號碼會一樣?
沒有一樣
以下略過... 這篇太篇硬體,之後有空回來看。