Linux秘技:一招搞定移动设备和内存交换管理!

科技   2024-11-08 20:35   上海  
链接:https://www.cnblogs.com/heyongshen/p/16438520.html

移动设备管理

移动设备就是我们所说的U盘、移动硬盘等。在Linux系统中使用移动设备时,也需要进行挂载和卸载操作。一般是在访问这个移动设备前需要先进行挂载,这样系统才能知道该如何与该设备通信以及在哪里可以找到它。在移除这个设备时需要被卸载,这样是为了保证数据的安全性。

因为移动设备本来就格式化了文件系统的,所以Linux主机接入移动设备后,只需要进行挂载就可以正常使用了。


例如: 将移动硬盘插入Linux主机后,会被内核探测为SCSI设备,会被映射到/dev下作为一个设备文件,命名方式是/dev/sdX


例如: 将一个USB设备插入Linux主机后,可以通过lsusb命令来查看是否正常插入,也可以通过系统日志看到相关信息

lsusb

通过查看系统日志的方法:

# ubuntu
tail -f /var/log/syslog

# centos
tail -f /var/log/messages

说明: 如果U盘的文件系统是NTFS,因为NTFS是windows特有的文件系统,所以Linux主机需要安装ntfs-3g 软件包才能支持识别这种格式的u盘

# ubuntu
apt install ntfs-3g

# centos
yum install ntfs-3g

swap空间管理

swap是一种特殊的文件系统,叫交换文件系统。作用就是把内存中暂时不用的数据导入swap硬盘分区中,给内存腾出空间。

swap空间的速度特别慢,很多时候内存充足的情况下不用设置swap,具体内存使用到多少需要开始使用swap空间,这个是根据内核的一个参数(/proc/sys/vm/swappiness)来决定的。

  • swappiness的默认值是60,意思就是当系统内存使用达到40%时,内核将开始考虑将一些内存页面放入交换空间中。

  • swappiness = 0:表示除非内存几乎完全被使用时,采用swap空间

  • swappiness = 100:积极使用交换空间,能用就尽量用

一般内存充足的情况下,不设置swap空间或者把swappiness设置为0就行了。但是在一些特殊的情况下,例如内存实在不够,这个时候就需要创建swap空间了。


创建swap空间的两种方法

第一种是硬盘上还有没有分配的空间,将这些空间格式化为一个swap分区。格式化swap分区使用的是mkswap工具来格式化的。
1、创建分区,使用fdisk、gdisk都可以

2、将分区格式化为swap这种文件系统

sudo mount /dev/sdb1 /mnt/swap/

3、启动交换空间
交换分区不是用于存储常规文件的,因此不能像其他文件系统(如ext4、NTFS等)那样被挂载

sudo swapon /dev/sdb1

4、验证

swapon  -s

5、写入/etc/fstb文件

/dev/sdb1  none  swap  sw  0  0

# 文件系统没有挂挂载点就写none
# sw:指定该设备应被视为交换空间

还有一种情况是硬盘没有未分配的空间了,不能通过再创建一个分区的方法来创建swap分区。这个时候我们可以通过dd命令来创建一个文件作为交换空间使用。

1、指定文件大小

dd if=/dev/zero of=swapfile bs=1G count=1

# 从 /dev/zero 读取数据,这会为你提供连续的零字节

2、设置权限

 sudo chmod 600 swapfile

3、格式化文件为交换空间

sudo mkswap swap

4、启用并检查

sudo swapon swapfile

# 显示交换区的使用状况
swapon -s

5、写入配置文件

sudo vim /etc/fstab
/home/ehigh/swapfile none swap sw 0 0


文件能作为交换空间的原因:
从操作系统的角度来看,交换空间只是磁盘上的一块区域,可以是一个分区,也可以是一个文件,把这块区域标记为swap格式的文件系统后,就具有了特定的结构。所以操作系统可以再这块区域里面存储和读取数

文件作为交换空间的要求:

  1. 理论上,可以使用任何大小合适的文件作为交换空间。

  2. 使用mkswap初始化文件作为交换空间时,它会在文件的开头写入特定的交换空间头部信息,这会破坏文件的原始内容。为了避免破坏重要数据并确保交换文件的内容是一致的,通常使用dd if=/dev/zero来创建一个大小固定、内容全为零的文件。

  3. 使用/dev/zero作为输入的另一个原因是为了确保文件在物理存储上是连续的,这可以提高交换操作的性能。

  4. 使用文件作为交换空间时,该交换空间的大小等于该文件的大小


关闭swap空间:

如果不想使用swap空间了。可以使用swapoff -a 来禁用所有的swap分区


Qt教程
致力于Qt教程,Qt技术交流,研发
 最新文章