美文网首页
proc, sys, dev, 内核模块, 文件系统, GPT,

proc, sys, dev, 内核模块, 文件系统, GPT,

作者: epiiplus1equal0 | 来源:发表于2019-03-21 09:28 被阅读0次

    [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
    

    相关文章

      网友评论

          本文标题:proc, sys, dev, 内核模块, 文件系统, GPT,

          本文链接:https://www.haomeiwen.com/subject/sivfvqtx.html