欢迎各位兄弟 发布技术文章
这里的技术是共享的
swap 分区 (swap就是交换的意思)
free
-m: 以M为单位来显示内存空间的大小
fdisk 先创建一个分区,fdisk 命令中,调整分区类型为82
然后 创建交换分区(文件系统) (格式化交换分区):
mkswap /dev/sda8
-L LABEL
启用交换分区的交换空间(挂载交换分区),使用 mount 是不能挂载的
swapon /dev/sda8
-a:启用所有的定义在 /etc/fstab文件中的交换设备
关闭交换分区的交换空间(卸载交换分区),
swapoff /dev/sda8
回环设备
loopback,使用软件来模拟实现硬件(大概这个意思,这样说 并不精确)
创建一个镜像文件, 1G,120G 可以当作硬盘 挂载分区格式化的 但这个文件可能只有几M,
创建文件的方式作为模拟的存储空间
没有多余的空间可用(但是分区里面有多余的空间),又要使用 swap,创建一个本地的回环设备,格式化成swap分区,然后再启用起来,就可以了
dd 命令(复制的是底层的数据流) 相当于copy 复制(以文件为单位) (dd复制不经过内存,直接从磁盘拷贝)
if=数据来源 input file
of=数据存储目标 output file
bs=1 或 1024 (字节为单位) byte size(block size) 每一次复制
count=2 复制2次
seek=#: 创建数据文件时,跳过的空间大小:
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
(备份)复制硬盘的最开始处的 512个字节(mbr)到 u 盘上
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
(mbr坏了,恢复)复制u盘的最开始处的 512个字节到 硬盘的 最开始处 (mbr)上
cat 可以做镜像的 (dd命令也可以做镜像的)
cat /dev/cdrom > /root/rhel5.iso
创建一个大小为1024M的虚拟的镜像文件 我们可以把这个文件mkswap,并且启用起来
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
/dev/zero 吐0,要多少有多少
/dev/null 黑洞
mount命令,可以挂载iso镜像:
mount DEVICE MOUNT_POINT
-o loop: 挂载本地回环设备(也就是挂载镜像)
mount /dev/sda5 /mnt/test
重启后 挂载就不存在了
文件系统的配置文件/etc/fstab
os 在初始化时,会自动挂载此文件中定义的每个文件系统
里面的东西能自动挂载
#
# /etc/fstab
# Created by anaconda on Thu May 11 04:02:33 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=159009ce-8e2f-4585-a9fb-164bf7a955e8 / ext4 defaults 1 1
要挂载的设备(可以是设备文件名,可以是uuid,可以是label) 挂载点 文件系统类型 挂载选项(默认defaults) 转储频率(有差异备份,增量备份,完全备份,它是指多少天做一次完全备份,0表示不备份,1表示每天,2表示每2天,事实上 现在好多软件都可以备份的一般来说我们自己设备的都不让它备份,都设置为0) 文件系统检测次序(一般只有根为1,2表示根检测完了再检查,其它的可以同时为2,0表示不检查)
下面两图有大用
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/vdb1 /home ext4 defaults 0 0
/dev/vdb1 /home ext4 defaults 0 0
mount /dev/sda5 /mnt/test 要想让它开机挂载
/dev/sda5 /mnt/test ext3 defaults 0 0
mount -a 表示挂载 /etc/fstab 文件中定义的所有文件系统
fuser:验证进程正在使用的文件或套接字文件
-v:查看某文件上(也可以是目录)正在运行的进程
-k: (kill)
-m: (name
)
fuser -km MOUNT_POINT: 终止正在访问此挂载点的所有进程 (fuser 是什么意思 file user )
虚拟内存:
交换空间不建议经常使用,因为性能不好,但有时不得不使用,因为内存不够的话,会宕机
如果不得不使用交换分区,尽量把交换分区放在靠外的磁道上 (柱面上),至少性能上好一点 速度快一点
[root@ebs-22618 ~]# free
total used free shared buffers cached
Mem: 2054060 1981188 72872 4600 10252 298088
-/+ buffers/cache: 1672848 381212
Swap: 0 0 0
[root@ebs-22618 ~]# free -m
swap 交换空间不使用 才是最好的
buffer (buffers) 从大河往小河是缓冲区,防止过慢的设备在接受的时候受到冲击,比如BT下载很快,但是我的硬盘接受的慢,BT下载会冲坏我的硬盘,所以通过BT缓冲到缓冲区,然后再慢慢地把缓冲区的数据写入硬盘,里面放的是元数据(不太精确)
cache (cached) 缓存的目的,是为了重复使用的,cpu从硬盘读取数据,硬盘太慢,先缓存到内存中,然后cpu从内存中读数据.
里面放的是数据(不太精确)
说明此时还未启用(这个swap 是以前的swap)
普通的mount挂载方式不行
开启swap(挂载swap)
# swapon /dev/sda8
此时有2G了 有误差(但是误差不关键)
关闭swap(卸载swap)
# swapoff /dev/sda8
[root@ebs-22618 ~]# man dd
# dd if=/etc/inittab of=/root/inittab
# df -lh
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
dd 其实可以作为性能测试的 比如这里 46.2M/s
# ls -lh /var/swapfile
# mkswap /var/swapfile
# free -m
# swapon /var/swapfile (启用 相当于挂载)
# free -m
[root@ebs-22618 ~]# man dd
# dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1024
# ls -lh /var/swapfile2
跳过 1023个block? 还是 bs 后面的单位(这里是M),应该是后者吧
# dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1
# ls -lh /var/swwapfile2
跳过 1023个block? 还是 bs 后面的单位(这里是M),应该是后者吧
这才是它真正的大小
# du -sh /var/swapfile2
vmware 虚拟机也是这样子的,比如,创建120 G,并不是刚开始时有120G
刚开始时可能几十M,但是最大120G
# mount -o loop /root/rhci-5.8-1.iso /media/ (挂载回环设备)
# ls /media/
# free -m
#swapoff /var/swapfile
# swapon -a (把 /etc/fstab 里面的所有的关于 swap 全部挂载)
# free -m
# df -h
为什么有些重启后存在(能自动挂载),有些重启后不存在(不能自动挂载)
[root@ebs-22618 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu May 11 04:02:33 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=159009ce-8e2f-4585-a9fb-164bf7a955e8 / ext4 defaults 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/vdb1 /home ext4 defaults 0 0
/dev/vdb1 /home ext4 defaults 0 0
[root@ebs-22618 ~]#
上面红色的是伪文件系统,是为了实现特殊功能的,它们不得不挂载
# umount /dev/sda5
# mount
# mount -a (挂载 /etc/fstab 里面的所有的设备)
# mount
# fuser -v /mnt/test 谁正在用什么命令访问
[root@ebs-22618 ~]# man fuser
# fuser -km /mnt/test
# umount /mnt/test
# vim /etc/fstab