在 Synology CS407 的 BusyBox 下方新增並執行軟體包以對碎片 Ext3 磁碟區進行碎片整理?如何?
筆記: 揭穿 Linux 檔案系統不會碎片化的迷思。 http://www.webupd8.org/2010/03/install-defrag-defragmentation.html
但這是一個常見的誤解在某些情況下,您確實必須對 Linux 檔案系統進行片段整理。這就算了Ubuntu 開發者在最近的一篇文章中證實了這一點就在幾分鐘前,我在 ubuntu 論壇上偶然發現了 ureadahead。從:Ubuntu 論壇貼文:http://ubuntuforums.org/showthread.php?t=1434502
避免這種情況的唯一方法是對磁碟進行碎片整理。但 Linux 檔案系統不需要碎片整理!
不管是誰告訴你這個說法都是大錯特錯的,這是 Linux 最常見的迷思之一。
事實是這樣的Linux 檔案系統盡可能避免將其 inode 表進行分割化。這意味著檔案如何在磁碟上分割(碎片)以及這些部分所在位置的索引往往會作為一個整體保持在一起。
這是好事; inode 表的碎片對於其他檔案系統(該檔案系統中的 FAT 等)來說是一個大問題,因此透過將它們保持在一起,可以提高效能。
但是數據本身仍然是碎片化的, 和以隨機順序分佈在整個磁碟上。不幸的是,在啟動過程中,這是我們需要的數據。
未來我們想要做的事情之一是使用 ureadahead 分析啟動過程中我們需要的內容並將其輸入碎片整理程序,因此我們需要的所有內容都位於磁碟上的一大塊中。
更新:
顯然,CS407 使用 Marvel 處理器 88f5281,因此它可能首先需要專門建造的 optware/entware 之類的東西。如果可能的話,請在這個方向上提供更多指導。
https://forum.synology.com/enu/viewtopic.php?t=66550
https://forum.synology.com/enu/viewtopic.php?f=39&t=83186#p339475
根據這兩個連結中的步驟和課程,我運行了以下內容(關鍵內容以雙星號標記並加粗):
忙碌盒版本:
BusyBox v1.16.1 (2011-04-08 10:15:04 CST) built-in shell (ash) Enter 'help' for a list of built-in commands.
命令列輸入和輸出:
CubeStation> /usr/syno/etc.defaults/rc.d/S80samba.sh stop
CubeStation> df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 2451064 478484 1870180 20% / /tmp 63396 288 63108 0% /tmp
/dev/md2 2879637816 2336710312 542825104 81% /volume1
CubeStation> unmount /volume1 -ash: unmount: not found
CubeStation> sudo unmount /volume1 -ash: sudo: not found
CubeStation> syno_poweroff_task
CubeStation> df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 2451064 478460 1870204 20% / /tmp 63396 284 63112 0% /tmp CubeStation> vgdisplay CubeStation> e2fsck -v -n -f /dev/md2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity
/lost+found not found. Create? no
Pass 4: Checking reference counts Pass 5: Checking group summary information 1.41.12-1613: ********** WARNING: Filesystem still has errors **********
42150 inodes used (0.02%)
3618 non-contiguous files (8.6%)
20 non-contiguous directories (0.0%)
# of inodes with ind/dind/tind blocks: 20326/8705/71 595654428 blocks used (81.44%) 0 bad blocks 114 large files 36634 regular files 4434 directories 0 character device files 0 block device files 0 fifos 1 link 1073 symbolic links (1073 fast symbolic links) 0 sockets
- 我不是 *Nix 專家,但有 CS 和 IT 背景,並且很擅長在命令列上運行東西。我已經閱讀了很多內容,但只是希望在這裡將正確的兼容包/組件(針對該系統)和步驟拼湊在一起。
- 我猜這可能缺少一些軟體包/組件,這些軟體包/組件將為我提供運行碎片整理的能力。
- 我應該/我可以安裝它們(上面鏈接的那些)嗎?哪些以及如何?
- 如何最好地執行它們?
我可以做什麼來整理卷宗 FS 和非連續資料?
答案1
從網路執行指令時,最好與手冊頁交叉檢查指令的作用。
在您的具體情況下,您的 e2fsck 命令:
e2fsck -v -n -f /dev/md2
如果我們檢查這個命令在e2fsck 手冊頁你會看到的:
-n 以唯讀方式開啟檔案系統,並假設所有問題的答案都是“否”。允許以非互動方式使用 e2fsck。 (注意:如果除了 -n 選項之外還指定了 -c、-l 或 -L 選項,則檔案系統將以讀寫方式打開,以允許更新壞塊列表。但是,沒有其他選項將對檔案系統進行更改。
因此 -n 標誌的作用是進行磁碟檢查而不修復它發現的任何問題。您需要刪除此標誌以讓它修復問題。您將收到 e2fsck 發現的每個問題的提示並嘗試修復。如果您希望 e2fsck 在沒有提示的情況下修復所有內容,請新增 -p 標誌:
-p 自動修復(「整理」)檔案系統,沒有任何問題。