歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 將/TMP和/Var移動到它們的共享分區

將/TMP和/Var移動到它們的共享分區

日期:2017/3/6 15:48:00   编辑:關於Unix
整理數據 首先,必須創建一個新分區專門用於存儲頻繁修改的文件。您可能希望將這個分區置於單獨的磁盤上以增強 性能 。接下來,我將逐步說明將 /tmp 和 /var 移動到這個新分區上的各個步驟。 警告 下面的技術說明如何移動一個或多個分區。盡管這項技術經過專
  整理數據
  首先,必須創建一個新分區專門用於存儲頻繁修改的文件。您可能希望將這個分區置於單獨的磁盤上以增強性能。接下來,我將逐步說明將 /tmp 和 /var 移動到這個新分區上的各個步驟。
  
  警告
  下面的技術說明如何移動一個或多個分區。盡管這項技術經過專門設計,使您能夠“撤銷”失敗的分區移動,但它並不防止用戶的錯誤。換言之,只要進行格式化分區或復制大量文件的操作,就存在因輸入錯誤而導致大量數據被破壞的可能性。因此,強烈建議您 在行動之前采取適當的措施來備份所有的重要文件。
  
  1. 在新分區上創建文件系統
  這個過程的第一步是創建一個足以容納 /var 和 /tmp 並有一點額外空間的新分區。您需要另有一個硬盤驅動器或者一個備用的(未使用的)分區來存儲經常修改的文件。如果確實需要使用 fdisk 或 cfdisk 來創建分區,則必須重新啟動一次系統。現在就可以格式化新分區了,如下所示(完全可以在多用戶模式下完成這一工作;我將提示您何時切換到單用戶模式):
  
  # mkfs.ext2 /dev/???
  
  2. 將新分區掛載到 /mnt/rwstorage
  正如在我的前一篇技巧中那樣,應該用剛創建的空分區的設備名替換 ???。意外鍵入錯誤的名稱將破壞現有分區上的數據,所以一定要小心!鍵入這個命令以後,您就在新分區上創建了一個新的 ext2 文件系統。現在幾乎就可以掛載這個分區了,但我們首先要創建一個掛載點。
  
  # mkdir /mnt/rwstorage
  
  我選擇名稱 "rwstorage" 是為了提醒我們,這個特殊的分區將專用於存儲頻繁讀寫的文件系統。要掛載分區,請鍵入:
  
  # mount /dev/??? /mnt/rwstorage
  
  3. 創建新的 /tmp
  分區已經掛載好,現在就可以創建新的 /tmp 目錄了:
  
  # cd /mnt/rwstorage
  # mkdir tmp
  # chmod 1777 tmp
  
  4. 進入單用戶模式
  我們的新目錄 /mnt/rwstorage/tmp 具有臨時目錄應該具有的權限。現在,請進入單用戶模式,因為我們必須復制整個 /var。像往常一樣,我們將進入單用戶模式推遲到最後一刻進行。從現在起我們不希望任何程序讀寫 /var 中的文件,所以必須停止所有守護程序,斷開所有用戶,執行一些快速的維護,為此請鍵入以下命令:
  
  # init 1
  
  如果提示您輸入口令來進行系統維護,請按指示操作。您現在應該在 root shell 中,所有不必要的守護進程已被停止。鍵入以下命令為 /var 中的文件創建一個新位置:
  
  # cd /mnt/rwstorage
  # mkdir var
  
  5. 復制 /var
  在我們的新 /mnt/newstorage/var 目錄上的默認權限應該是正確的,現在就可以將原來的全部 /var 數據復制到新分區上了:
  
  # cd /var
  # cp -ax * /mnt/rwstorage/var
  
  6. 執行備份並創建符號鏈接
  這個命令完成以後,/mnt/rwstorage/var 就成為 /var 的一個完全相同的副本。現在您可能會問,如何讓 Linux 正確使用 /mnt/rwstorage/var 和 /mnt/rwstorage/tmp 而不是根目錄下的默認位置呢?使用符號鏈接很容易實現這一點 -- 我們將創建新的符號鏈接 /tmp 和 /var,它們指向 /mnt/rwstorage 中的正確目錄。我們首先備份原來的目錄:
  
  # cd /
  # cp var var.old
  # cp tmp tmp.old
  
  最後一行可能沒有必要,因為通常您不會將任何重要的文件放在 /tmp 中,但我們這樣做更安全一些。現在開始創建符號鏈接:
  
  # cd /
  # ln -s /mnt/rwstorage/var /var
  # ln -s /mnt/rwstorage/tmp /tmp
  
  7. 最後修改 /etc/fstab
  現在,當任何用戶或程序使用 /var 時,他們將被自動轉移到 /mnt/rwstorage/var!對於 /tmp 也一樣。我們還有一個步驟要做;但是這一步可以安全地在多用戶模式下執行。現在可以讓 apache 恢復運行了,也可以讓您的所有用戶重新登錄了。請按 CTRL-D 退出 runlevel 1。系統應該正常啟動。請以 root 身份登錄。
  
  我們必須完成的最後一個步驟是配置 /etc/fstab 文件,以便將 /dev/??? 掛載到 /mnt/rwstorage。必須在 /etc/fstab 中添加這樣一行:
  
  /dev/???    /mnt/rwstorage ext2  defaults    1   2
  
  重要說明:如果您使用的內核版本屬於 2.3+,則在您的 /etc/fstab 文件中很可能有這樣一行:
  
  none      /var/shm    shm   defaults    0   0 
  
  該行在系統中啟用共享內存,默認情況下它掛載在 /var 中。為了使該行正常工作,它必須出現在您剛添加的那一行的下一行。這樣,當 Linux 啟動時,/mnt/rwstorage 將首先被掛載(啟用 /var)。然後,並且僅當在此以後,shm 設備將被掛載在 /var/shm,而後者實際上是 /mnt/rwstorage/var/shm。確保這兩行的次序為:
  
  /dev/???    /mnt/rwstorage ext2  defaults    1   2
  none      /var/shm    shm   defaults    0   0
  
  在保存了對 /etc/fstab 的更改以後,您的系統已經成功升級了!在證實一切工作正常以後,您可刪除所備份的 /tmp.old 和 /var.old 目錄。恭喜您 -- 為了獲得最佳性能,您已經成功地對您的系統分區進行了重新配置。

Copyright © Linux教程網 All Rights Reserved