首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
华为云
V2EX  ›  Linux

请教一个问题,两块硬盘组成 lvm,假如一块硬盘损坏,另一块硬盘上的数据该如何读取/导出?

  •  
  •   yao990 · 131 天前用 Android 发布 · 1948 次点击
    这是一个创建于 131 天前的主题,其中的信息可能已经有所发展或是发生改变。
    24 回复  |  直到 2018-07-14 00:40:53 +08:00
        1
    likuku   131 天前
    LVM 缩放作的多,系统损毁以 LiveCD 挂载独立 LVM 也作过,

    可惜 PV 损毁这种没有实操过,建议可以 virtualBox 开个多虚拟硬盘的实例快速作个实验。
        2
    msg7086   131 天前
    直接读啊,普通的 lvm 就是裸盘上面存数据再加点 meta data。
    你知道每个 LV 的位置的话直接 dd 出来就是分区。
        3
    hellojinjie   131 天前 via Android
    lvm 有 strip 功能的吧,就是数据同时往两张盘写。和 raid0 一样, 一张盘坏了,估计数据就没了
    @msg7086
        4
    msg7086   131 天前
    @hellojinjie 有,用了 md 条带的话没有办法的。所以我说 普通的 lvm 是可以的。
        5
    yao990   131 天前 via Android
    @likuku 等有机会吧,目前手头的机器暂时没条件让我试😁
        6
    yao990   131 天前 via Android
    @hellojinjie 这么恐怖?
        7
    yao990   131 天前 via Android
    @msg7086 那怎么区分普通 lvm 和用了 md 条带的 lvm ?
        8
    msg7086   131 天前
    @yao990
    md 上的 lvm 直接看 lvm pv 所用的 md 设备类型即可。


    以及如果用 lvm 自带的 stripe 功能的话:

    https://sysadmincasts.com/episodes/27-lvm-linear-vs-striped-logical-volumes

    # lvs --segments
    LV VG Attr #Str Type SSize
    root vol_e27 -wi-a---- 8 striped 5.82t

    # lvdisplay -vm

    --- Segments ---
    Logical extent 0 to 1526183:
    Type striped
    Stripes 8
    Stripe size 256.00 KiB
    Stripe 0:
    Physical volume /dev/xvdb
    Physical extents 0 to 190772
    Stripe 1:


    #4 的回答有点问题。我原本记得 lvm 的条带用的是 md,似乎是记错了。他的条带应该是自己做的 mapper。
        9
    likuku   131 天前
    @yao990 家用虚拟机软件 virtualBox 快速装个 debian, 系统 8G 虚拟硬盘,1G 测试 pv x2,总计 10G 空间足以

    我自己手里电脑倒是真没条件测,硬盘只剩 5G 可用空间... Orz
        10
    yao990   131 天前 via Android
    @msg7086 我刚看了下我的机器,发现 type 是 linear,请问这是属于那种类型的?
        11
    yao990   131 天前 via Android
    @likuku,,,,,这个可以有,赶明试试
        12
    msg7086   131 天前
    @yao990 普通。
        13
    yao990   131 天前 via Android
    @msg7086 那意思是不是说,就算其中一块盘不工作,直接挂上另一块,也能读取数据?
        14
    msg7086   131 天前
    @yao990 只能挂载其中完整的分区。
    读取当然是可以的,但是如果文件系统不完整,就得扫描整块硬盘了。(类似分区被格式化后的样子)
        15
    yao990   131 天前 via Android
    @msg7086,,我这边的情况是,一个大分区占用了两个硬盘,换句话说,就是一旦有一块盘损坏,就需要扫描整块硬盘了?
        16
    msg7086   131 天前
    @yao990 是的。原始数据是可以读出来的,但是因为少了一半的原始数据,你的文件系统报废了。如果丢了一半的文件系统,那就必须要找专业恢复公司花巨额资金做手工扫描恢复。
        17
    yao990   130 天前 via Android
    @msg7086 今天手贱,进行了一个操作,导致 xfs 文件系统损坏,先是用 lvreduce 命令将分区缩小至原来的一半,然后又用 lvextend 命令扩充至原来的大小,然后挂载,挂载可以正常挂载,当用 ls 列出文件时就提示无法打开目录,输入输出错误。
        18
    yao990   130 天前 via Android
    @msg7086 通过 df -h 可以看到,内部的数据都还在
        19
    msg7086   130 天前
    @yao990 ermmm 没玩过这么高端的操作……
    df 只是读取元数据信息。
    数据应该都在,但是估计文件系统有错误。dd 备份完后做磁盘检查试试。
        20
    yao990   130 天前 via Android
    @msg7086 我尝试用 fsck,但提示要用 xfs_repair,然后使用 xfs_repair 时就提示设备忙。。。。已经确认卸载了,还提示忙。。
        21
    msg7086   130 天前
    重启一下试试吧。另外如果是重要数据,切记先 dd 备份整块盘然后再操作。
        22
    yao990   130 天前 via Android
    @msg7086 不敢重启,因为主板和显示器不兼容,在没有进入系统前,显示器上会一直显示分辨率超出,一旦重启不能直接进入系统,那么就只能等有机会找到合适的显示器才能再进行下一步动作。另外,暂时没有能够存储所有数据的硬盘。。。。。。。。。这可真是尴尬。。。
        23
    msg7086   130 天前
    ermmm 爱莫能助,祝你好运……
        24
    yao990   130 天前 via Android
    @msg7086 谢谢,我刚才尝试了 xfs_repair 等一系列命令,无一例外,都是输入输出错误,还不能重启,愁啊愁
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2486 人在线   最高记录 3911   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 22ms · UTC 12:27 · PVG 20:27 · LAX 04:27 · JFK 07:27
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1