zoukankan      html  css  js  c++  java
  • aws 克隆机器与原主机UUID相同的冲突解决(读取额外挂载的磁盘数据)

    aws 克隆机器与原主机UUID相同的冲突解决(读取额外挂载的磁盘数据)
    20180623 Chenxin

    数据恢复/数据提取
    场景:这里都是RHEL7.有一台ec2启动不了,将此磁盘挂载到另一个机器上(为它的母AMI生成的机器),以便排查原因.

    mount -t xfs /dev/xvdf2 /data/disktmp #报错如下

    mount: wrong fs type, bad option, bad superblock on /dev/xvdf2,
    missing codepage or helper program, or other error
    In some cases useful info is found in syslog - try

    /var/log/messages信息如下:
    Jun 23 23:09:59 ip-10-0-1-7 kernel: XFS (xvdf2): Filesystem has duplicate UUID 50a9826b-3a50-44d0-ad12-28f2056e9927 - can't mount

    查看设备文件类型和UUID
    blkid /dev/xvda2
    /dev/xvda2: UUID="50a9826b-3a50-44d0-ad12-28f2056e9927" TYPE="xfs" PARTUUID="cc8f8c5a-3a04-4a6a-aa62-ed173ee9aede"
    blkid /dev/xvdf2
    /dev/xvdf2: UUID="50a9826b-3a50-44d0-ad12-28f2056e9927" TYPE="xfs" PARTUUID="cc8f8c5a-3a04-4a6a-aa62-ed173ee9aede"
    UUID确实是重复了.

    重新生成一个UUID

    uuidgen

    d672b79e-e72b-4bd6-a397-38373eabb046

    将重新生成的UUID烧录到磁盘分区

    xfs_admin -U d672b79e-e72b-4bd6-a397-38373eabb046 /dev/xvdf2

    Clearing log and setting UUID
    writing all SBs
    new UUID = d672b79e-e72b-4bd6-a397-38373eabb046

    重新挂载

    mount -t xfs /dev/xvdf2 /data/disktmp/

    确认挂载成功

    ls /data/disktmp/

    bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

    修改完文件后,先umount,然后一定要将UUID恢复回去,否则挂载回去后系统会报"文件系统错误",无法启动实例

    xfs_admin -U 50a9826b-3a50-44d0-ad12-28f2056e9927 /dev/xvdf2

    恢复实例(重新挂载回原EC2)
    修改完数据后,umount后,重新挂载到原EC2:
    这里需要在控制台"卷"里先"断开卷",然后"连接卷",选择对应的EC2实例,并且挂载设备里输入/dev/sda1 (注意,这里输入内容必须和断开前一致.如果是Amazon_Linux,这里是/dev/xvda (attached)).因为RHEL7挂载的默认磁盘是2个xfs分区,amazon linux挂载的磁盘默认是1个ext4分区.
    如果这里输入其他的/dev/xvdf 或者/dev/sda 都是不行的,实例EC2都会提示无法找到/dev/sda1,从而无法启动机器.
    主要原因应该是Amazon_Linux默认磁盘分了1个分区,而RHEL的磁盘分了2个分区.
    如果是修改RHEL7的MAC地址,一定要去得EC2实例的真实MAC(控制台里"网络接口"能看到),否则系统会无法启动.

    知识
    blkid
    在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。
    实例
    1、列出当前系统中所有已挂载文件系统的类型:
    blkid

    blkid (直接执行)

    /dev/xvda2: UUID="50a9826b-3a50-44d0-ad12-28f2056e9927" TYPE="xfs" PARTUUID="cc8f8c5a-3a04-4a6a-aa62-ed173ee9aede"
    /dev/xvdf2: UUID="50a9826b-3a50-44d0-ad12-28f2056e9927" TYPE="xfs" PARTUUID="cc8f8c5a-3a04-4a6a-aa62-ed173ee9aede"

    2、显示指定设备 UUID:
    blkid -s UUID /dev/sda5

    3、显示所有设备 UUID:
    blkid -s UUID

    4、显示指定设备 LABEL:
    blkid -s LABEL /dev/sda5

    5、显示所有设备 LABEL:
    blkid -s LABEL

    6、显示所有设备文件系统:
    blkid -s TYPE
    blkid -s TYPE
    /dev/xvda2: TYPE="xfs"
    /dev/xvdf2: TYPE="xfs"

    7、显示所有设备:
    blkid -o device

    8、以列表方式查看详细信息:
    blkid -o list

    附件说明(df -lhT指令也可以查看文件系统类型)
    df -lhT
    Filesystem Type Size Used Avail Use% Mounted on
    /dev/xvda2 xfs 10G 1.9G 8.2G 19% /
    devtmpfs devtmpfs 469M 0 469M 0% /dev

    xfs_admin
    xfs_admin: 调整 xfs 文件系统的各种参数

    1.烧录UUID
    xfs_admin -U d672b79e-e72b-4bd6-a397-38373eabb046 /dev/xvdf2

    2.设置卷标xfs_admin -L linux /dev/sda3
    xfs_admin -L linux /dev/sda3 (也使用e2label来对xfs格式的文件系统设置卷标操作)
    xfs_admin -l /dev/sda3 #查看xfs格式文件系统的卷标
    xfs_admin -L linux /dev/sda3 #设置xfs格式文件系统的卷标为linux

    uuid

  • 相关阅读:
    [分享]一个天气预报的WebService应用实例
    XMLHttpRequest Ajax 实例简介
    CSS选择符
    MSDN SmartCast更改下载步骤
    发掘VS2005 SP1 (二) 更好的支持主题
    .Net+MySQL组合开发(二) 数据访问篇
    最近一打开cnblogs首页,就弹出电影网站!
    今天有点爽
    .Net+MySQL组合开发(三) 乱码篇
    发掘VS2005 SP1 (三) 母模页
  • 原文地址:https://www.cnblogs.com/chanix/p/12738951.html
Copyright © 2011-2022 走看看