linux 开机挂载磁盘和swap分区
前言
最近manjaro经常内存爆满,16G的物理内存理应来说是够的,但是不知道为什么有时候某个软件会突然占用过高的内存,后来发现是没有启用swap分区,但不知能否解决内存溢出的问题,先记下启用swap分区的方法。 Linux 中的 Swap 交换分区就是 Windows 中的虚拟内存,将Linux系统服务器中的物理硬盘空间虚拟化成内存使用,以解决内存不够的问题。不同的Linux【CentOS/Ubuntu/Debian】发行版新建,增加 Swap 分区的方法是一样的,下面致臻数据就分享下如何确定和创建 Swap 分区及大小。
步骤
swap分区需要的大小
- <= 4g 至少 4G
- 4~16G 至少 8G
- 16G~64G 至少 16G
- 64G~256G 至少 32G
创建swap分区
创建命令如下,其中 /var/swapfile 是文件位置,bs*count 是文件大下,比如我创建一个 16G 的文件:
dd if=/dev/zero of=/var/swapfile bs=4M count=4096 |
建立swap文件系统
将文件格式化为swap分区文件
mkswap /var/swapfile |
启用swap分区
启用分区
swapon /var/swapfile |
查看是否成功启用
free -m |
设置开机自启
编辑/etc/fstab
文件,在文件末尾加上:
/var/swapfile swap swap defaults 0 0 |
注意:中间用tab分割
修改swappiness参数
vim /proc/sys/vm/swappiness |
内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。 查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区。 可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 15% 时才使用 SWAP 分区:
echo 15 >/proc/sys/vm/swappiness |
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf
文件,并增加以下内容:
vm.swappiness=15 |
挂载机械硬盘
也是编辑/etc/fstab
文件 在末尾加入
/dev/sda1 /data ntfs defaults 0 0 |
配置完成后可用sudo mount -a
检查是否配置成功
为某个用户挂载
加入uid和gid参数,查看当前用户的uid的指令为id
挂载smb磁盘
替换成共享地址的路径,类型使用“cifs”,并且在参数项加入username=,password=,iocharset=utf8
etc/fstab
详解
文件作用
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。 系统开机时会主动读取/etc/fstab文件中的内容,根据文件这个里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
挂载的限制
- 根目录是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的跟目录,其他木有都是由根目录 /衍生出来的。
- 挂载点必须是已经存在的目录。
- 挂载点的指定可以任意,但必须遵守必要的系统目录架构原则
- 所有挂载点在同一时间只能被挂载一次
- 所有分区在同一时间只能挂在一次
- 若进行卸载,必须将工作目录退出挂载点(及其子目录)之外。
参数
label或uid 用唯一名称定位需要挂载的分区或磁盘
挂载点 需要挂载到哪个目录下
磁盘的系统
文件系统的参数
Async/sync | 设置是否为同步方式运行,默认为 async |
auto/noauto | 当下载 mount -a 的命令时,此文件系统是否被主动挂载。默认为 auto |
rw/ro | 是否以以只读或者读写模式挂载 |
exec/noexec | 限制此文件系统内是否能够进行 “执行” 的操作 |
user/nouser | 是否允许用户使用 mount 命令挂载 |
suid/nosuid | 是否允许 SUID 的存在 |
Usrquota | 启动文件系统支持磁盘配额模式 |
Grpquota | 启动文件系统对群组磁盘配额模式的支持 |
Defaults | 同事具有 rw,suid,dev,exec,auto,nouser,async 等默认参数的设置 |
dump 是否使用dump备份,0表示不需要,1表示每天,2表示不定日期,备份我一般使用其他方式,所以填0就好
是否检验 0表示不需要,1表示最早(一般根目录需要),2表示1级别完成之后进行检验