最近几天刚入手的树莓派3,打算用它来做一个小型服务器。所以就用USB挂载了一块1T的硬盘。并将系统下的swap、/var、/usr/share、/home目录转移到了硬盘上,这样系统每次启动的时候都会挂载硬盘上的那三个目录而不是内存卡上的。
之所以要修改这三个目录的挂载点是因为这三个目录占用的空间比较大,尤其是var目录;我是用树莓派来做服务器的,所以,所有的web服务的源码以及数据目录都会默认放在这个目录下,而且linux的系统日志也在这个目录下,尤其是做web服务器的,会在这个目录下产生大量的日志。而/usr/share目录是apt-get的默认安装目录。使用apt-get安装的软件默认会安装在这个目录下。本来我想将整个usr目录都改到硬盘上,但试了几次都不成功,所以就将/usr/share目录改到了硬盘上。
首先要做的就是为硬盘分区,我为硬盘分了4个区,以下是我的硬盘分区情况:
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 1936697343 1936695296 923.5G 5 Extended
/dev/sda2 1936697344 1953525167 16827824 8G 83 Linux
/dev/sda5 4096 104861695 104857600 50G 83 Linux
/dev/sda6 314580992 1936697343 1622116352 773.5G 83 Linux
/dev/sda7 104863744 314578943 209715200 100G 83 Linux
/dev/sda2为交换分区,/dev/sda6为var目录准备的分区。
一、开机挂载交换分区:
1、格式化交换分区:
使用命令:mkswap /dev/sda2
2、查看/dev/sda2分区UUID:
命令:ll /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 15 Oct 22 08:36 3598ef8e-09be-47ef-9d01-f24cf61dff1d -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 10 Oct 22 08:36 3f799227-92e1-46d8-8582-e83f2208c983 -> ../../sda7
lrwxrwxrwx 1 root root 10 Oct 22 08:36 47306d98-1066-457a-a6a7-7c1bd3948a09 -> ../../sda6
lrwxrwxrwx 1 root root 15 Oct 22 08:36 70F7-FA1D -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 Oct 22 08:36 c90f954c-648a-4832-8bfd-46b96fe89e01 -> ../../sda5
lrwxrwxrwx 1 root root 10 Oct 22 08:36 cb6334e4-6442-40cf-88cf-693d17835530 -> ../../sda2
从命令的执行结果中可以得知/dev/sda2的UUID为cb6334e4-6442-40cf-88cf-693d17835530。
3、修改/etc/fstab文件:
这是我修改后的/etc/fstab文件内容,其中最后一行是交换分区的:
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
UUID=c90f954c-648a-4832-8bfd-46b96fe89e01 /home ext4 defaults,noatime 0 1
UUID=3f799227-92e1-46d8-8582-e83f2208c983 /usr/share ext4 defaults,noatime 0 1
UUID=47306d98-1066-457a-a6a7-7c1bd3948a09 /var ext4 defaults,noatime 0 1
UUID=cb6334e4-6442-40cf-88cf-693d17835530 swap swap defaults 0 0
修改完/etc/fstab文件重启系统就会自动挂载/dev/sda2为交换分区。
使用命令free -m可以查看交换分区当前的使用情况。
二、修改/var目录挂载点:
1、格式化/dev/sda6分区
命令:mkfs.ext4 /dev/sda6
2、挂载/dev/sda6目录到/mnt目录下:
命令:mount /dev/sda5 /mnt
3、将/var目录下的所有文件全部cp到/mnt目录中(/dev/sda6中) :
命令:sudo cp -rav /var/* /mnt
注意:使用cp命令的时候要加上-a参数。
4、查看/dev/sda6的UUID:
命令:ll /dev/disk/by-uuid
命令执行结果:
total 0
lrwxrwxrwx 1 root root 15 Oct 22 08:36 3598ef8e-09be-47ef-9d01-f24cf61dff1d -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 10 Oct 22 08:36 3f799227-92e1-46d8-8582-e83f2208c983 -> ../../sda7
lrwxrwxrwx 1 root root 10 Oct 22 08:36 47306d98-1066-457a-a6a7-7c1bd3948a09 -> ../../sda6
lrwxrwxrwx 1 root root 15 Oct 22 08:36 70F7-FA1D -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 Oct 22 08:36 c90f954c-648a-4832-8bfd-46b96fe89e01 -> ../../sda5
lrwxrwxrwx 1 root root 10 Oct 22 08:36 cb6334e4-6442-40cf-88cf-693d17835530 -> ../../sda2
从结果中可以得知/dev/sda6的UUID为47306d98-1066-457a-a6a7-7c1bd3948a09。
5、修改/etc/fstab文件:
修改结果:
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
UUID=c90f954c-648a-4832-8bfd-46b96fe89e01 /home ext4 defaults,noatime 0 1
UUID=3f799227-92e1-46d8-8582-e83f2208c983 /usr/share ext4 defaults,noatime 0 1
UUID=47306d98-1066-457a-a6a7-7c1bd3948a09 /var ext4 defaults,noatime 0 1
UUID=cb6334e4-6442-40cf-88cf-693d17835530 swap swap defaults 0 0
其中带有/var的哪一行就是var目录的设置。修改完后重启系统即可。
/home和/usr/share目录的修改方式和/var目录的修改方式是一样的。要注意的地方是一定要先将内存卡上的内容拷贝过去之后再重启系统。经过这样的修改之后每次启动系统的时候系统就会自动的去挂载硬盘上的三个分区,而不在挂载内存卡上的。
这是我全部修改完后系统自动挂载的目录的结果:
pi@raspberrypi:~ $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 3.6G 1.1G 2.4G 30% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 6.3M 457M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
/dev/mmcblk0p1 63M 21M 43M 33% /boot
/dev/sda5 50G 90M 47G 1% /home
/dev/sda7 99G 371M 93G 1% /usr/share
/dev/sda6 762G 77G 647G 11% /var
从df命令的结果中可以看出我的/var目录的大小变成了762G,/home、/usr/share的目录也都改变了大小。