• Linux_17 MBR和GPT,LVM 及网卡配置


    1.两种分区格式
    	mbr分区格式:使用fdisk进行分区,最多4个主分区,通常用于小于2T的磁盘空间
    	gpt分区格式:使用gdisk进行分区,最多128个主分区,通常用于大于2T的磁盘空间
    	
    	命令:
    		m:查看帮助
    		q:退出
    		n:新建分区(p主分区 e扩展分区)
    		p:
    		w:保存
    		d:删除分区
    
    blkid  # 显示磁盘分区后的块的UUID,及该块使用的文件系统类型
    lsblk  # 显示当前主机所有磁盘块分区及挂载信息
    
    
    /etc/fstab
    第四列:
        async/sync # 是否同步方式运行,默认async(异步)
        user/nouser # 是否允许普通用户使用mount命令挂载,默认nouser。
        exec/noexec # 是否允许可执行文件的执行,默认exec。
        suid/nosuid # 是否允许存在suid属性的文件,默认suid。
        auto/noauto # 执行mount -a 时,此文件系统是否被主动挂载,默认auto
        rw/ro  # 是否只读或者读写模式进行挂载。默认rw.
        defaults  # 具有rw,suid,exec,auto,nouser,async等默认参数
    
    第五列:dump:表示该挂载后的文件系统能否被dump备份命令作用;
        0:代表不做备份
        1:代表要每天进行备份操作
    
    

    GPT分区格式

    在虚拟机上添加一块大于2T的虚拟硬盘,然后重新启动虚拟机,才能加载新的硬盘。ls /dev/sd  按tab键 发现新的添加的硬盘已经被加载出来了。如果是在物理机上插入一块物理磁盘,磁盘是热加载,直接能看到新磁盘的加入,无需重启物理机。
    
    gdisk # 分区
    
    mkfs.xfs /dev/sdc1 # 格式化成xfs类型的文件系统
    mkfs.xfs /dev/sdc2 # 格式化成xfs类型的文件系统
    
    mkdir /test{3,4}
    mount /dev/sdc1 /test3
    mount /dev/sdc2 /test4
    
    

    制作交换分区和挂载

    # 创建一个新的分区作为交换分区
    fdisk/gdisk  # gdisk需要yum安装
    	8200 指定制作成交换分区
    partprobe # 让内核重新读取分区表 不然 ls /dev/sd 按tab键 新建的分区可能没加载进来
    mkswap /dev/sdc3 # 将sdc3格式化为交换分区
    swapon /dev/sdc3 # 激活交分区
    
    # 开机自动挂载
    vim /etc/fstab
    /dev/sdb6 swap                                      swap    defaults        0 0
    /dev/sdc3 swap                                      swap    defaults        0 0
    
    mount -a # 将/etc/fstab下的分区重新挂载  下次开机就可以自动挂载了
    

    文件系统损坏与修复

    重新添加一块硬盘
    fdisk /dev/sdb # 分一个1G的分区
    mkfs.xfs /dev/sdb1
    mount /dev/sdb1 /mnt
    echo 111 > /mnt/a.txt
    
    # 模拟损坏
    dd if=/dev/zero of=/dev/sdb bs=500M count=1
    umount /mnt
    mount /dev/sdb1 /mnt # 无法挂载
    
    # 修复
    先尝试命令:xfs_repair /dev/sdb
    如果失败,加选项 -L 执行强制修复:
    	xfs_repair -L /dev/sdb
    
    
    ps:如果是ext文件系统,修复需要用fsck命令 # centos6的系统使用的是ext4
    
    fsck -f -y /dev/sda1
    
    -y 对所有问题都回答"yes"
    -f 即使文件系统标记为 clean也强制进行检查
    
    
    
    
    

    xfs文件系统备份与恢复

    rpm -qf `which xfsdump`
    rpm -qf `which xfsrestore`
    
    xfsdump 的备份级别有以下两种,默认为0(即完全备份)
    0   完全备份
    1  <= level <= 增量备份:
    
    ps:增量备份是和第一次的备份(level 0)进行比较,仅备份有差异的文件
    
    xfsdump常用参数:
    
    -L:xfsdump会记录每次备份的session Label,这里可以填写针对此文件系统简要说明;
    -M:xfsdump可以记录存储Media Label,这里可以填写此媒体的剪辑说明。
    -l: 是L的小写,就是指定level,有0~9共10个等级,默认为0,即完整备份。
    -f:后面接产生的文件和destination file 。 例如 /dev/st0 设备文件名或其他一般文件名
    -I:大写的"i",从/var/lib/xfsdump/inbentory 列出目前备份的信息状态。
    
    xfsdump使用限制:
    
    1.必须用root权限
    2.只能备份已挂载的文件系统
    3.只能备份XFS文件系统
    4.只能用xfsrestore解释
    5.透过文件系统的UUID来分辨备份档,因此不能备份相同UUID的文件系统
    
    xfsdump备份与xfsrestore恢复
    # 1.数据备份
    # 1.1 先做全量备份,切记“备份的源路径”末尾不要加左斜杠/
    xfsdump -l 0 -L sdb3_bak -M sdb3_bak -f 全量备份的成果路径1 备份的源路径
    	echo 111>/test1/1.txt
    	xfsdump -l 0 -L sdb1_bak -M sd5_bak -f /sdb1_bak_all /test1
    
    # 1.2 再做增量备份
    xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径2 备份的源路径
    	echo 333333333 > /test1/3.txt
    	echo 22222 >> /test1/1.txt
    	xfsdump -l 1 -L sdb1_bak -M sd5_bak -f /sdb1_bak_add1 /test1 
    
    xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径3 备份的源路径
    	echo 444 >> /test1/3.txt
    	xfsdump -l 1 -L sdb1_bak -M sd5_bak -f /sdb1_bak_add2 /test1 
    
    xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径4 备份的源路径
    
    # 2.数据恢复
    # 2.1 先恢复全量备份
    xfsrestore -f 全量备份的成果路径1 数据恢复的路径
    	xfsrestore -f /sdb1_bak_all /test1
    # 2.2 再依次恢复增量
    xfsrestore -f 增量备份的成果路径2 数据恢复的路径
    	xfsrestore -f /sdb1_bak_add1 /test1
    	ls /test1
    		1.txt
    	cat /test1/1.txt
    xfsrestore -f 增量备份的成果路径2 数据恢复的路径
    	xfsrestore -f /sdb1_bak_add2 /test1
    	ls /test1
    		1.txt 3.txt
    	cat /test1/1.txt
    	cat /test1/3.txt
    

    LVM

    为何要用lvm

    我们在对磁盘分区的大小进行规划时,往往不能确定每个分区使用的空间大小,只能凭经验分配一个大小,而我们通常使用的fdisk、gdisk等工具对磁盘分区后,每个分区的大小就固定死了,这么做的问题是:
    	# 如果分区设置的过大,就会白白浪费了磁盘空间
    	# 如果分区设置的过小,就会导致空间不够用的情况出现
    	对于分区过小的问题,我们可以重新划分磁盘的分区,或者通过软连接的方式将此分区的目录链接到另外一个分区
    	
    	上述问题可以通过LVM来解决
    

    什么是lvm

    逻辑卷管理LVM是硬盘的一个系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理"逻辑卷",而不是直接使用物理磁盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。
    
    通过LVM技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后子啊这些卷上建立相应的文件系统。下面是LVM中主要设计的一些概念。
    
    物理卷(physical volume),把常规的磁盘设备通过pvcreate命令对其进行初始化,形成了物理卷。其实就是硬盘或分区。
    卷组(VG,volume group):把多个物理卷组成一个逻辑的整体,这样卷组的大小就是多个硬盘之和。或者理解就是由一个或多个PV组成的整体。
    
    基本单元(PE,physical extend):分配的逻辑大小的最小单元,默认为4MB的基本块。(假设分配100MB逻辑空间,则需要创建25个PE)
    
    LVM优缺点总结:
    # 优点:
    1. 可以在系统运行的状态下动态的扩展文件系统的大小。
    2.文件系统可以跨多个磁盘,因此文件系统的大小不会受物理磁盘的限制。
    3.可以增加新的磁盘到LVM的存储池中。
    4.可以以镜像的方式冗余重要的数据到多个物理磁盘。
    5.可以方便的导出整个卷组到另外一台机器。
    
    # 缺点:
    1.因为加入了额外的操作,存取性能收到影响。
    2.当卷组中的一个磁盘损坏时,整个卷组都会收到影响。
    解释:LVM如果有一个磁盘损坏,整个LVM都坏了,LVM只有动态扩展作用,
    方案:底层用RAID+上层LVM=既有冗余又有动态扩展
    
    2.在从卷组中移除一个磁盘的时候必须使用reducevg命令(该命令要求root权限,并且不允许在快照卷组中使用)
    
    

    LVM的使用

    yum install -y lvm2
    
    准备一个硬盘空间(分区,一整块盘)
    
    1.制作pv:可以对分区做、也可以对整块盘    
        pvcreate /dev/sdb1
        pvcreate /dev/sdc
        pvs # 查看
    	pvscan
        	PV /dev/sdb1
            PV /dev/sdc
    	
        vgcreate -L 10G -n lv1_from_vg1 vg1
        mkfs.xfs /dev/vg1/lv1_from_vg1
        mount /dev/vg1/lv1_from_vg1 /test1
    

    网卡

    网卡名字

    # 网卡名称规则
        Centos6之前基于传统的命名方式如:eth1,eth0...
        CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名时全自动的、可预知的,缺点是比eth0更难读。比如ens33
    
    # 了解网卡命名的策略:
    规则1:如果Fireware或者BIOS提供的设备索引信息可用就用此命名。比如eno1.否则使用规则2
    规则2:如果Fireware或Bios的PCI-E扩展插槽可用就用此命名。比如ens1,否则使用规则3
    规则3:如果硬件接口的位置信息可用就用此命名。比如enp2s0
    规则4:根据MAC地址命名,比如enx7d3e9f。默认不开启
    规则5:上述均不可用时回归传统命名方式
    
    上面的 所有命名 规则需要依赖一个安装包:biosdevname
    biosdevname和net.ifnames属于两种不同的命名规范
    CentOS-7中默认biosdevname的值为0,net.ifnames的值为1。
    
    配置回归传统命名方式:
    cd /etc/sysconfig/network-scripts/
    mv ifcfg-ens33 ifcfg-eth0
    
    # 修改网卡配置文件设备名称
    sed -i "s#ens33#eht0g" ifcfg-eth0
    
    # GRUB添加kernel参数
    vim /etc/sysconfig/grub
    GRUB_CMDLINE_LINUX="rhgb quiet 'net.ifnames=0 biosdevname=0'"
    
    # 加载到引导分区
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    # 重启系统生效
    reboot
    
    

    基本网络配置

    查看网卡信息
    
    # 查看当前系统所连接的所有网卡
    lspci | grep -i eth
    # 确认网线已经连接好,以eth0为例
    mii-tool eth0 
    	eth0: negotiated 1000baseT-FD flow-control, link ok # link ok 网卡能够别识别,并且接了有效的网线
    
    mii-tool eth1
        SIOCGMIIPHY on 'eth1' failed:Invalid argument
        网卡虽然能够被识别(网卡已经被驱动了,但不能用:网卡配置错误,网线没接等)
    
    
    ifconfig eth1 up # 	启动网卡
    ifconfig eth1 172.16.10.11/24 # 临时生效,重启机器IP需要重新配置,要想长久有效,必须在/etc/sysconfig/network-scripts/目录中重新添加一份ifcfg-ethX格式的文件。这样每次开机都会加载这个文件,给ethX网卡配置IP
    
    ifconfig命令:
    ifconfig -a # 查看所有网卡信息
    ifconfig eth0 # 查看单个网卡信息
    ifconfig eth0 192.168.1.122 netmask 255.255.255.0 临时设定IP和掩码(重启服务或系统都失效)
    ifconfig eth0 192.168.1.122/24
    ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 # 配置子接口实际这张网卡是虚的,流量还是走eth0
    # 删除:下属两种方式都可以
    ifconfig eth0:0 down
    ifconfig eth0:1 del 192.168.0.2 # 删除,不必加掩码
    
    # 开启与关闭
    ifconfig eth0 down | up # 不加载网卡配置文件
    ifconfig eth0 | ifup eth0 # 加载网卡配置文件
    
    ping 命令
    
    ping 目标IP地址 # ctrl+c结束,测试是否两台主机网络是否通
    ping -c 次数 目标IP地址
    
    # 在自己的机器上执行,则禁用别人ping自己
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    
    NetworkManager 服务
    NetManager作用:是redhat6自带的检测网络、自动连接网络的图形化工具。NetworkManager服务会干扰网络配置,如:DNS经常会被刷掉,所以通常关闭。
    systemctl stop NetworkManager
    systemctl disable NetworkManager
    
    网卡相关的配置文件:/etc/sysconfig/network-scripts/ifcfg-ethX 接口的网络配置文件
    
    # 打开网卡配置文件,完成静态ip配置,修改完毕后重启网络服务即可:systemctl restart network
    DEVICE=eth0  # 网卡名字
    BOOTPROTO=static # dhcp 动态获取IP,none 根据其他选项决定动态还是静态,static肯定是手工指定IP
    NM_CONTROLLED=no # 如果NetworkManager服务启用,该网卡配置文件也不受该服务管理
    ONBOOT=yes  # 网络服务启动的时候,yes代表激活状态,no代表禁用
    TYPE=Ethernet
    IPADDR=10.1.1.11 # IP 地址
    NETMASK=255.255.255.0
    GATEWAY=10.1.1.1 # 默认网关
    DNS1=10.1.1.1 # DNS1服务器
    DNS2=8.8.8.8
    HWADDR=14:da:e9:eb:a9:61  # MAC地址
    USERCTL=no # 是否允许普通用户启动或停止该网卡
    IPV6INIT=no  # 是否在该网卡上启动IPV6的功能
    PEERDNS=yes  # 是否允许网卡在启动时向DHCP服务器查询DNS信息,设置为yes时,此文件设置的DNS将覆盖/etc/resolv.conf,若开启了DHCP,则 默认为yes,所以dhcp的dns也会覆盖/etc/resolv.conf
    
    dns配置文件
    1./etc/resolv.conf # DNS解析文件
    cat /etc/resolv.conf # 色湖之DNS指向,最多3个
    nameserver 8.8.8.8 # 对应网卡配置文件中的配置项DNS1
    nameserver 192.168.12.1 # 对应网卡配置文件中的配置项DNS2
    
    2./etc/hosts 本地名称解析文件,优先于DNS
    ps:dns检索优先级
    浏览器DNS缓存-->本地系统DNS缓存-->本地计算机HOSTS文件-->ISP DNS缓存-->递归or迭代搜索
    
    永久设置主机名:
    hostnamectl set-hostname chao.zhang.com
    hostname
    
    端口和服务的对应关系
    	grep '^ftp|^ssh' /etc/services
    	
    
    
    

  • 相关阅读:
    SourceInsight中文字体
    Android Studio导入第三方类库的方法
    Unable to create Debug Bridge:Unable to start adb server:error:cannot parse version
    match_parent 、 fill_parent 、 wrap_content
    android:textAppearance
    AndroidManifest配置之uses-sdk
    从Github上下载了项目,导入Android Studio,gradle 报错,应该怎么修改
    Android Studio 使用Gradle多渠道打包
    Android Studio常用快捷键
    在一个form表单中根据不同按钮实现多个action事件
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/14831259.html
Copyright © 2020-2023  润新知