[TOC]
1. /proc和/sys
虚拟文件系统: /proc和/sys
/proc | <PID> | cpuinfo | |
---|---|---|---|
meminfo | 监控, watch -n1 'cat /proc/meminfo' | 注意watch命令的用法 | |
partitions | 新分区在此文件中显示才说明有效 | ||
sys | 用sysctl命令可修改此文件中内容 | 其实是临时修改内核参数: sysctl -a | grep icmp | |
sysctl -w icmp_echo_ignore_all=1 | |||
sysctl -w net.ipv4.ip_forward=1 (开启路由转发, 此时主机可作为一台路由器使用) | |||
如何永久生效? | 修改/etc/sysctl.conf文件, 再使用sysctl -p /etc/sysctl.conf | ||
清除缓存: buffers和cached (具体说明在/usr/share/doc/kernel-doc3.10.0/Documentation/sysctl/vm.txt) | echo 3 > /proc/sys/vm/drop_caches |
2. /dev
Major | Minor |
---|---|
主设备编号 | 次设备编号 |
举例: | vda, vda1, vda2... 252/253 (主设备编号)<br />vda 0, vda1 1, vda2 2... 15<br />vab 16, vdb1 17...<br />vdc 32 后面的数字是次设备编号 |
误删设备文件(原文件不可存在)是如何重建? | rm -rf /dev/vdb1<br />mknod /dev/vdb1 b 253 17 |
Block devices: | |
/dev/sda, /dev/sdb | SCSI, SATA, USB 8 (主设备编号) |
/dev/md0, /dev/md1 | software RAID |
Character devices: | |
/dev/null, /dev/zero | software devices |
/dev/random, /dev/urandom | Random numbers |
3. 内核模块
可按需加载和卸载
lsmod | 查看系统中所有使用的模块 | |
---|---|---|
modinfo | 查看模块信息 | |
modprobe | 手动加载和卸载模块 | |
modprobe usb_storage | 加载模块 | |
modprobe -r usb_storage | 卸载模块 |
4. 添加文件系统
# 1) 识别设备 kvm(vda) xen(xvda)
# 2) 分区: 不可对扩展分区进行格式化
500G = 2*100G主分区 + 300G扩展分区
sda1 sda2 sda3 sda5 ...
前三个为主分区, 后面的都是扩展分区
fdisk -> MBR格式, 最大识别空间: 2T
GPT >=2T
500G = 2*100G主分区 + 200G扩展分区 + 100G
# 3个主分区, 剩余的100G可用
id:主分区(83), 扩展分区(5), swap(82), LVM(8e), GPT(ee)
# 分区完成后, 特别注意:
cat /proc/partitions # 若查询结果有新分区, 才可对新分区进行格式化
# 3)
mkfs.ext4 /dev/vdb # ✖, 此命令会执行成功, 将其内所有分区格式化!
mkfs.ext4 /dev/vdb1 # ✔, 千万要注意格式化的是分区!
格式化文件系统时会生成UUID
# 编辑完/etc/fstab后, 先umount, 在mount -a测试/etc/fstab中内容是否有误
# 4)
tune2fs -l /dev/vdb1 # -l: 查看卷标
mkfs -t ext3 -L "guest_data" /dev/sda5 # -L: 指定卷标
tune2fs -L "guest_data" /dev/sda5 # -L: 指定卷标
e2label /dev/sda5 "guest_data" # 指定卷标
5. 分区表的备份和恢复
# 1)
sfdisk -d /dev/sda > /tmp/partitions.sda # 备份
# 2)
fdisk /dev/sda # 默认分的是扇区
# 3)
sfdisk /dev/sda < /tmp/partitions.sda # 恢复
# 4)
partprobe /dev/sda # 更新/proc/partitions
# 一些注意的细节:
# 1)
mount /dev/vdb1 /mnt
# 2)
ls -ld /mnt # 755
# 3)
chmod 777 /mnt # 挂载后修改的是设备的权限(对设备的操作)
# 4)
umount /mnt # chmod 777 /dev/vdb1 (对文件的操作)
# 5)
ls -ld /mnt # 此时/mnt的权限为755, 而/dev/vdb1的权限为777
mount -a # 挂载/etc/fstab内未被挂载的分区
mount -o remount /mnt # 编辑/etc/fstab中defaults,ro后不用卸载
mount -o remount,ro /mnt # 临时生效
mount /dev/vdb3 /data # 当有人在访问/data中内容时
umount /data # 提示设备忙碌, 无法卸载
fuser -v /data # 查看挂载点正被谁使用
fuser -km /data # k: kill, m: mount poing
# 将挂载点上所有访问的进程杀掉
umount /data # 此时卸载会成功
6. GPT
# 方法一:
parted /dev/sdb
help
mklabel
gpt # 设置分区表格式为gpt
mkpart 83 1 3000000 # 分区时特别小心! 因为所有操作都会立刻保存
# 开始 结束 单位是M
quit
# 方法二:
gdisk /dev/sdb # 类似fdisk, redhat7拥有, 分区表位gpt格式
7. swap
可用两种方法做swap
# 方法一: 用分区做swap
# 1)
fdisk /dev/sdb # 切出1G作为swap分区
# 2)
partprobe /dev/sdb
# 3)
mkswap /dev/sdb5 # 格式化为swap分区, 此时会生成UUID
# 4)
vim /etc/fstab
UUID=... swap swap defaults 0 0 # 注意挂载点为swap
# 5)
swapon -a # 挂载swap分区, 类似mount -a, 卸载: swapoff /dev/sdb5
# 6)
swanon -s # 查看挂载的swap, 也可用free -m
# 方法二: 用文件做swap
# 1)
dd if=/dev/zero of=/tmp/swap bs=1M count=1024M
# 2)
mkswap /tmp/swap
# 3)
vim /etc/fstab
/tmp/swap swap swap defaults 0 0
# 4)
swapon -a
# 5)
swapon -s
网友评论