第 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 號碼會一樣?

沒有一樣

以下略過... 這篇太篇硬體,之後有空回來看。

results matching ""

    No results matching ""