這裡想聊的是 Linux 的磁碟要怎麼割,這在生命當中是會時時的變更的,也會隨硬碟愈來愈大而不同

以前會想讓 /boot 為獨立一個 device,而此時不會,以減少 partition device 的數量

某個時期是

/boot           512M
/             10240M
swap           4096M
/tmp           4096M
/usr          10240M
/var         (剩下的)

我在 Linux 上時常閒晃的地方會是,另一層意義就是這幾個點是 io 常起起落落的地方

/root/
/etc/
/home/
/usr/local/
/var/log/
/var/www
/var/lib/mysql
/tmp/
swap

也曾想讓以下幾個獨立一個 device,因為它是 web site 及 mysql database 常讀寫的地方

/var/lib/mysql/
/var/www/
/var/log/

像現在流行的 Cloud / VPS 可能是割如此而已

/boot/
/

少 partition 有少的好壞處,多的亦同
假如 /var 壞軌了,你可能會想當初就分成  /var/www 、/var/lib/mysql 、/var/log 就好了

我最新作法,現在 (可能會偶而更新 :) )

# for web site + database
/           25600M 或 51200M
/tmp        (可隨時變化,所以用 image 方式給 4096M,綁在 /)
swap        (可隨時變化,所以用 image 方式給 4096M,綁在 /)
/usr        25600M 或 51200M
/var        (剩下的對半)
# for samba service fileserver
/           25600M 或 51200M
/home       (剩下的)
/tmp        (用 image 方式給 4096M,綁在 /)
swap        (用 image 方式給 4096M,綁在 /)

我也會用 virtualbox 架 web 子機,然後 fileserver 再弄個 NFS 給 web 子機掛載 data 用,一方面 web 這台子機也不用給太大的空間了

swap 與 /tmp 怎麼用 image 來 mount

掛載 /tmp

dd if=/dev/zero of=/tmpfile.img bs=4096 count=1000000
echo y | mkfs.ext4 /tmpfile.img
mount -o loop,rw,nodev,nosuid,noexec /tmpfile.img /tmp
chmod 1777 /tmp
mount -o rw,noexec,nosuid,nodev,bind /tmp /var/tmp

編輯 /etc/fstab 加入

/tmpfile.img    /tmp        ext4    rw,noexec,nosuid,nodev,loop 0 0
/tmp            /var/tmp    none    rw,noexec,nosuid,nodev,bind 0 0

掛排 swap

dd if=/dev/zero of=/swapfile.img bs=4096 count=1000000
mkswap -f /swapfile.img
chmod 0600 /swapfile.img
swapon /swapfile.img

編輯 /etc/fstab 加入

/swapfile.img   swap        swap    defaults    0 0

最近也關注一個小技巧就是,最好設定每個 device (/dev/sdX[0-9]) 有一個 LABEL,然後用 LABEL 來載掛 (或 UUID),以避免硬碟順序問題 (先插後插等)而讓系統掛載錯顆 device,
像一台 server 一般會有四顆硬碟插槽,可能 disk1 與 disk2 會是組成 raid1 當 OS,disk3 與 disk4 可能是各單獨的一顆作資料用,disk 3 可能會是 /dev/sdb1,而 disk 4 可能是 /dev/sdc1,當下是好好的,可是重開機後又可能兩兩交換。

最後修改日期: 2014 年 11 月 17 日

作者

留言

正常來說要掛載UUID 會比較準確,尤其在 Public Cloud Instance 上。
不要偷懶. XD ..
#blkid /dev/xxxx

[Reply]

cross Reply:

有一情況要小心,就是當下 dd 或 clone /dev/sda 到 /dev/sdb 時,不管你是 LABEL= 或 UUID= 都難逃避掉重開機後系統會混亂的時後。

[Reply]

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。