断电后 ubuntu 文件系统损坏? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
qqqasdwx
V2EX    Linux

断电后 ubuntu 文件系统损坏?

  •  
  •   qqqasdwx 2017-10-30 16:28:35 +08:00 10081 次点击
    这是一个创建于 2932 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    我这边有一些设备,每天都要强制断电,有的时候就会出现无法进入系统的情况。

    解决方案选择

    1. 预防
    2. 解决

    问题

    1. 如果是预防的话,方案是将系统设置为只读,领导提供的方案是 Overlayroot,我没接触过,网上也没找到什么例子,有大神接触过的请不吝赐教,拜谢!
    2. 如果是解决的话,看了一下,用 fsck 应该是可以的,但是领导说系统都崩了,根本找不到 fsck 命令的,但我有点疑问,如果 fsck 是在系统启动之后才能运行的话,那设置/etc/default/rcS下的FSCKFIX = yes有什么用呢?

    附加

    不考虑 ups,设备多,成本太高

    34 条回复    2017-11-04 12:33:07 +08:00
    514146235
        1
    514146235  
       2017-10-30 16:45:02 +08:00
    btrfs 你值得拥有
    ryanking8215
        2
    ryanking8215  
       2017-10-30 16:45:14 +08:00
    我给你出个馊注意吧,借鉴嵌入式系统,用 ramfs, cramfs, squashfs 等只读文件系统,数据挂 ext4, xfs 日志文件系统。
    ToughGuy
        3
    ToughGuy  
       2017-10-30 17:41:35 +08:00
    如果能改接受系统重启后数据还原就直接使用 aufs 弄成类似 LiveCD 那种格式。
    hcymk2
        4
    hcymk2  
       2017-10-30 17:49:14 +08:00
    不能提前关机么?
    py2ex
        5
    py2ex  
       2017-10-30 17:52:22 +08:00
    以前用过 ubuntu 11.04 每次机房断电,恢复供电后启动系统,这时看到各个分区都变为只读挂载了。
    难道只读这个过程不是自动的?
    AttufliX
        6
    AttufliX  
       2017-10-30 18:03:55 +08:00 via Android
    万年 ext4,断电也没坏过。btrfs 千万别用
    qqqasdwx
        7
    qqqasdwx  
    OP
       2017-10-30 18:05:11 +08:00
    @hcymk2 不能 [手动捂脸] ,时间不定 0.0
    Osk
        8
    Osk  
       2017-10-30 18:16:00 +08:00 via Android
    我手上一块开发板现在当家庭 server 也是,每次都起不来,每次都得手动取卡执行 fsck,其实是我懒,只要配置好 initramfs,在 initramfs 阶段中完成 fsck 就没这些问题了,但配置方法我弄丢了(主要是 ubbot 启动脚本),想着反正一年就几次而已就没管。

    或者像嵌入式系统那样,原始的 rootfs 分区挂载为只读,然后数据分区挂载读写,最后挂载 OverlayFS 做为真正的 /
    gwind
        9
    gwind  
       2017-10-30 21:52:20 +08:00
    Linux 这种需求不为过,可以满足,但是如果想做到安全,需要定制。
    另外,应用内存数据不考虑保护吗?
    ashong
        10
    ashong  
       2017-10-30 21:59:43 +08:00
    我的软路由刷 LEDE 也是这个问题, 掉电后重新启动就是只读挂载, 搜了一下应该是 linux 常见的问题
    flynaj
        11
    flynaj  
       2017-10-30 22:03:39 +08:00 via Android
    断电之前先关机,
    Ehend
        12
    Ehend  
       2017-10-30 23:37:40 +08:00 via Android
    表示我的树莓派也是这样,目前解决方案是常年接个充电宝。。。
    likuku
        13
    likuku  
       2017-10-30 23:43:25 +08:00
    经常断电,力荐 xfs

    硬盘足够多,那么数据盘使用带冗余策略的 ZFS 也是很好的选择

    btrfs ... 那玩意还是算了吧
    HMSQQbA
        14
    HMSQQbA  
       2017-10-31 00:53:37 +08:00 via Android
    @Ehend 求充电宝型号?一直找不到满足要求的:1.能边放边充。2.断电时供电不会短时断开
    yingfengi
        15
    yingfengi  
       2017-10-31 01:09:42 +08:00 via Android
    每天强制断电是什么场景
    twl007
        16
    twl007  
       2017-10-31 01:18:02 +08:00 via iPhone
    禁用硬盘自带缓存
    Ehend
        17
    Ehend  
       2017-10-31 02:06:55 +08:00 via Android
    ashong
        18
    ashong  
       2017-10-31 02:39:10 +08:00
    @HMSQQbA 我也在找,tb 上有些宿舍路由器 ups,不知道常通电会不会有安全隐患
    likuku
        19
    likuku  
       2017-10-31 02:48:55 +08:00
    @yingfengi 上学时候,宿舍 23:30 准时断电... 那时我用 freebsd 6 和 debian,crontab 设置了 23:25 自动关机,然后就听着楼道里各种咒骂断电的例行吐槽。
    tamlok
        20
    tamlok  
       2017-10-31 06:57:46 +08:00 via Android
    买个 ups 护着?起码有时间关机。
    atz
        21
    atz  
       2017-10-31 09:10:32 +08:00
    支持楼上 ups,强制断电也会损耗电脑,还不如先关机别老想者用复杂的办法
    doubleflower
        22
    doubleflower  
       2017-10-31 09:18:03 +08:00
    @atz 损耗哪个部件?
    qqqasdwx
        23
    qqqasdwx  
    OP
       2017-10-31 09:57:42 +08:00
    @yingfengi 客户那边的需求 0.0 而且断电时间不定
    qqqasdwx
        24
    qqqasdwx  
    OP
       2017-10-31 10:05:22 +08:00
    @twl007 嗯,这方面也在考虑,但性能会受到一定的影响
    qqqasdwx
        25
    qqqasdwx  
    OP
       2017-10-31 10:07:38 +08:00
    @gwind 对啊,现在就发愁呢,只能在内存里少放数据
    wxg4net
        26
    wxg4net  
       2017-10-31 10:13:10 +08:00
    Overlayroot 方案不错
    qqqasdwx
        27
    qqqasdwx  
    OP
       2017-10-31 10:15:26 +08:00
    @wxg4net 嗯,看了一下,不难配置,就是更改系统设置的时候得从 grub 重新引导比较烦,有什么经验传授一下么大神
    wxg4net
        28
    wxg4net  
       2017-10-31 10:16:55 +08:00
    @wxg4net 但是仍然有问题需要处理。数据分区也可能断电损坏
    qqqasdwx
        29
    qqqasdwx  
    OP
       2017-10-31 10:38:44 +08:00
    @wxg4net 那就 overlayroot+开机自动 fsck ?
    yingfengi
        30
    yingfengi  
       2017-10-31 11:04:55 +08:00 via Android
    @qqqasdwx 极域可以联动关机,仅供参考
    scofieldpeng
        31
    scofieldpeng  
       2017-10-31 11:24:10 +08:00
    之前家里的上网本当 server 也遇到这个问题,不过好在有电池,于是写了个脚本,发现断电并且电量不够了自动关机,2333
    qqqasdwx
        32
    qqqasdwx  
    OP
       2017-10-31 13:34:43 +08:00
    @scofieldpeng 我这要有电池就没问题了 233
    iwtbauh
        33
    iwtbauh  
       2017-11-02 10:28:32 +08:00 via Android
    问题 2:开机时调用的 e2fsck 是在 内存闪存盘 /内存文件系统 中的,并不是系统根文件系统中的那个
    系统启动前,会在内存中创建一个内存闪存盘或内存文件系统,内部解压进去一个最小的文件系统(由 busybox,启动脚本和一些必要的工具,例如 e2fsck )。
    因此只要保证这个镜像(例如 /boot/initrd-xxxxx.img )可以就可以在开机之前检查文件系统
    henglinli
        34
    henglinli  
       2017-11-04 12:33:07 +08:00 via iPhone
    1,可以尝试把 /分区 remount 挂载成只读,应用需要迁移到单独分区,而且应用还要支持 recovery 等特性。(补充下:内核启动参数默认就是 ro 的,systemd 会 remount / 为 rw )。
    2,fsck 修复文件系统,如果断电的时候正在写文件,该文件可能会已经损坏了,fsck 也许能修复改文件。

    btrfs 推荐使用分区如下:/rw_root_fs 这是原系统根文件系统 ,/ro_root_fs 这是只读的 rw_root_fs 的 snapshot 子卷 ,/usr/local/ 或者 /otp 这是应用分区 ;从 ro_root_fs 只读启动或者启动后 remount 成只读。btrfs 理论上不需要 fsck。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     822 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 22:00 PVG 06:00 LAX 14:00 JFK 17:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86