<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 7.6 文件系統的特殊觀察與操作 文件系統實在是非常有趣的東西,鳥哥學了好幾年還是很多東西不很懂呢!在學習的過程中很多朋友在討論區都有提供一些想法! 這些想法將他歸納起來有下面幾點可以參考的數據呢! ### 7.6.1 磁盤空間之浪費問題 我們在前面的 EXT2 [data block](../Text/index.html#harddisk-inode) 介紹中談到了一個 block 只能放置一個文件, 因此太多小文件將會浪費非常多的磁盤容量。但你有沒有注意到,整個文件系統中包括 superblock, inode table 與其他中介數據等其實都會浪費磁盤容量喔!所以當我們在 /dev/vda4, /dev/vda5 創建起 xfs/ext4 文件系統時, 一掛載就立刻有很多容量被用掉了! 另外,不知道你有沒有發現到,當你使用 ls -l 去查詢某個目錄下的數據時,第一行都會出現一個“total”的字樣! 那是啥東西?其實那就是該目錄下的所有數據所耗用的實際 block 數量 * block 大小的值。 我們可以通過 ll -s 來觀察看看上述的意義: ``` [root@study ~]# ll -sh total 12K 4.0K -rw-------. 1 root root 1.8K May 4 17:57 anaconda-ks.cfg 4.0K -rw-r--r--. 2 root root 451 Jun 10 2014 crontab 0 lrwxrwxrwx. 1 root root 12 Jun 23 22:31 crontab2 -&gt; /etc/crontab 4.0K -rw-r--r--. 1 root root 1.9K May 4 18:01 initial-setup-ks.cfg 0 -rw-r--r--. 1 root root 0 Jun 16 01:11 test1 0 drwxr-xr-x. 2 root root 6 Jun 16 01:11 test2 0 -rw-rw-r--. 1 root root 0 Jun 16 01:12 test3 0 drwxrwxr-x. 2 root root 6 Jun 16 01:12 test4 ``` 從上面的特殊字體部分,那就是每個文件所使用掉 block 的容量!舉例來說,那個 crontab 雖然僅有 451Bytes , 不過他卻占用了整個 block (每個 block 為 4K),所以將所有的文件的所有的 block 加總就得到 12KBytes 那個數值了。 如果計算每個文件實際容量的加總結果,其實只有不到 5K 而已~所以啰,這樣就耗費掉好多容量了!未來大家在討論小磁盤、 大磁盤,文件大小的損耗時,要回想到這個區塊喔! ^_^ ### 7.6.2 利用 GNU 的 parted 進行分區行為(Optional) 雖然你可以使用 gdisk/fdisk 很快速的將你的分區切割妥當,不過 gdisk 主要針對 GPT 而 fdisk 主要支持 MBR ,對 GPT 的支持還不夠! 所以使用不同的分區時,得要先查詢到正確的分區表才能用適合的指令,好麻煩!有沒有同時支持的指令呢?有的!那就是 parted 啰! ![鳥哥的圖示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鳥哥的圖示") **Tips** 老實說,若不是后來有推出支持 GPT 的 gdisk,鳥哥其實已經愛用 parted 來進行分區行為了!雖然很多指令都需要同時開一個終端機去查 man page, 不過至少所有的分區表都能夠支持哩! ^_^ parted 可以直接在一行命令行就完成分區,是一個非常好用的指令!它常用的語法如下: ``` [root@study ~]# parted [設備] [指令 [參數]] 選項與參數: 指令功能: 新增分區:mkpart [primary&#124;logical&#124;extended] [ext4&#124;vfat&#124;xfs] 開始 結束 顯示分區:print 刪除分區:rm [partition] 范例一:以 parted 列出目前本機的分區表數據 [root@study ~]# parted /dev/vda print Model: Virtio Block Device (virtblk) &lt;==磁盤接口與型號 Disk /dev/vda: 42.9GB &lt;==磁盤文件名與容量 Sector size (logical/physical): 512B/512B &lt;==每個扇區的大小 Partition Table: gpt &lt;==是 GPT 還是 MBR 分區 Disk Flags: pmbr_boot Number Start End Size File system Name Flags 1 1049kB 3146kB 2097kB bios_grub 2 3146kB 1077MB 1074MB xfs 3 1077MB 33.3GB 32.2GB lvm 4 33.3GB 34.4GB 1074MB xfs Linux filesystem 5 34.4GB 35.4GB 1074MB ext4 Microsoft basic data 6 35.4GB 36.0GB 537MB linux-swap(v1) Linux swap [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] ``` 上面是最簡單的 parted 指令功能簡介,你可以使用“ man parted ”,或者是“ parted /dev/vda help mkpart ”去查詢更詳細的數據。比較有趣的地方在于分區表的輸出。我們將上述的分區表示意拆成六部分來說明: 1. Number:這個就是分區的號碼啦!舉例來說,1號代表的是 /dev/vda1 的意思; 2. Start:分區的起始位置在這顆磁盤的多少 MB 處?有趣吧!他以容量作為單位喔! 3. End:此分區的結束位置在這顆磁盤的多少 MB 處? 4. Size:由上述兩者的分析,得到這個分區有多少容量; 5. File system:分析可能的文件系統類型為何的意思! 6. Name:就如同 gdisk 的 System ID 之意。 不過 start 與 end 的單位竟然不一致!好煩~如果你想要固定單位,例如都用 MB 顯示的話,可以這樣做: ``` [root@study ~]# parted /dev/vda unit mb print ``` 如果你想要將原本的 MBR 改成 GPT 分區表,或原本的 GPT 分區表改成 MBR 分區表,也能使用 parted ! 但是請不要使用 vda 來測試!因為分區表格式不能轉換!因此進行下面的測試后,在該磁盤的系統應該是會損毀的! 所以鳥哥拿一顆沒有使用的U盤來測試,所以文件名會變成 /dev/sda 喔!再講一次!不要惡搞喔! ``` 范例二:將 /dev/sda 這個原本的 MBR 分區表變成 GPT 分區表!(危險!危險!勿亂搞!無法復原!) [root@study ~]# parted /dev/sda print Model: ATA QEMU HARDDISK (scsi) Disk /dev/sda: 2148MB Sector size (logical/physical): 512B/512B Partition Table: msdos # 確實顯示的是 MBR 的 msdos 格式喔! [root@study ~]# parted /dev/sda mklabel gpt Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? y [root@study ~]# parted /dev/sda print # 你應該就會看到變成 gpt 的模樣!只是...后續的分區就全部都死掉了! ``` 接下來我們嘗試來創建一個全新的分區吧!再次的創建一個 512MB 的分區來格式化為 vfat,且掛載于 /data/win 喔! ``` 范例三:創建一個約為 512MB 容量的分區 [root@study ~]# parted /dev/vda print .....(前面省略)..... Number Start End Size File system Name Flags .....(中間省略)..... 6 35.4GB 36.0GB 537MB linux-swap(v1) Linux swap # 要先找出來下一個分區的起始點! [root@study ~]# parted /dev/vda mkpart primary fat32 36.0GB 36.5GB # 由于新的分區的起始點在前一個分區的后面,所以當然要先找出前面那個分區的 End 位置! # 然后再請參考 mkpart 的指令功能,就能夠處理好相關的動作! [root@study ~]# parted /dev/vda print .....(前面省略)..... Number Start End Size File system Name Flags 7 36.0GB 36.5GB 522MB primary [root@study ~]# partprobe [root@study ~]# lsblk /dev/vda7 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda7 252:7 0 498M 0 part # 要確定它是真的存在才行! [root@study ~]# mkfs -t vfat /dev/vda7 [root@study ~]# blkid /dev/vda7 /dev/vda7: SEC_TYPE="msdos" UUID="6032-BF38" TYPE="vfat" [root@study ~]# nano /etc/fstab UUID="6032-BF38" /data/win vfat defaults 0 0 [root@study ~]# mkdir /data/win [root@study ~]# mount -a [root@study ~]# df /data/win Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda7 509672 0 509672 0% /data/win ``` 事實上,你應該使用 gdisk 來處理 GPT 分區就好了!不過,某些特殊時刻,例如你要自己寫一只腳本,讓你的分區全部一口氣創建, 不需要 gdisk 一條一條指令去進行時,那么 parted 就非常有效果了!因為他可以直接進行 partition 而不需要跟用戶互動!這就是它的最大好處! 鳥哥還是建議,至少你要操作過幾次 parted ,知道這家伙的用途!未來有需要再回來查!或使用 man parted 去處理喔!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看