2010年11月2日 星期二

mount /var to a new partition

當初安裝的時候沒有把 /var 獨立出一個分割區,最近發現 / 剩餘空間愈來愈少,利用
sudo du -h --max-depth=1 /
才發現 /var 就佔了超過 2G ,大部份都是被 Cache 這個目錄吃掉,這是 pacman 的暫存檔,雖然可以用
sudo pacman -Sc
清掉,但是身為一個懶惰的傢伙,加上不曉得什麼時候會需要 downgrade 某個套件,乾脆就另外準備一個分割區來放。


備份資料到隨身碟時,發現裡面中文目錄或檔案都變成亂碼,似乎是 xfce4 的問題,
修改 /etc/xdg/xfce4/mount.rc
在 [vfat] 下面增加一行
utf8=true
下次插入隨身碟時就可以正常顯示中文了。

使用 Gparted Live CD 以預設選項進入 X 時,螢幕會出現
Out of Range
無法顯示畫面,逼的我用 Alt + SysRq + [ U , B ] 來重開機,改手動設定解析度就可以正常進入 X,切好分割區並格式化後,mount 原本的 / 與 新切割給 /var 的分割區,複製舊資料,更改原本的 /etc/fstab 。
mkdir ~/rrt ~/new_var

mount /dev/real_root_partition ~/rrt
mount /dev/new_var_partition ~/new_var

# 複製原本 var 下的檔案到新分割區
# 重新命名原本的 var,避免重新開機後掛載到內有檔案的資料夾
sudo cp -ax ~/rrt/var/* ~/new_var/
sudo mv ~/rrt/var ~/rrt/var.old
sudo mkdir ~/rrt/var

sudo cp ~/rrt/etc/fstab ~/rrt/etc/fstab.old

# 利用 blkid 來查 uuid 資料並更新 fstab 資料
blkid > ~/uuid.txt
cat ~/rrt/etc/fstab ~/uuid.txt > ~/fstab.new
# 使用 vi 修改完畢後覆蓋回原本的 /etc/fstab
sudo cp ~/fstab.new ~/rrt/etc/fstab
# 重新開機,測試是否有成功掛載
# 自己重新開機後有碰到一個問題,blkid 顯示的還是舊的分割區資料
# 後來 man blkid 才知道是讀取 cache 的問題
# 使用 blkid -g 就可以清除 ( 但是要用 root 權限去跑,否則沒用 )
sudo blkid -g
sudo blkid

Reference:
ArchWiki:Xfce
Ubuntu Forums:I want to move /var to a new partition

沒有留言: