把整个硬盘目录 commit 成 git 然后系统出问题就 check 回去 可行么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chenty
V2EX    问与答

把整个硬盘目录 commit 成 git 然后系统出问题就 check 回去 可行么?

  •  
  • &nbp; chenty 2020-10-16 09:22:40 +08:00 via Android 4776 次点击
    这是一个创建于 1890 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在硬盘都好大 windows10 的垃圾也好多 有没有可能这么干 这样出问题直接 check 回去 岂不美哉?
    36 条回复    2020-10-19 12:09:45 +08:00
    jdhao
        1
    jdhao  
       2020-10-16 09:26:46 +08:00 via Android
    git 仓库大小有限制,如果只是为了做备份,windows 有备份功能吧
    chenty
        2
    chenty  
    OP
       2020-10-16 09:28:32 +08:00 via Android
    git 可以方便的 ignore 各种零食文件啊 还有文件版本
    @jdhao
    clf
        3
    clf  
       2020-10-16 09:39:18 +08:00
    不建议这样使用 git,毕竟你除去零时文件后还是很大的……直接用自带的备份更好。
    Aixtuz
        4
    Aixtuz  
       2020-10-16 09:48:31 +08:00
    有过跟你一样的期望,想要在出问题是最快速度恢复。
    最后用了 VHDX 差分系统。
    glfpes
        5
    glfpes  
       2020-10-16 09:49:40 +08:00
    用 git 维护大把大把的二进制文件是我想不到的
    SingeeKing
        6
    SingeeKing  
    PRO
       2020-10-16 09:51:36 +08:00   3
    git 是存储全量内容的而不是版本差异,因此如果对大文件进行修改是个灾难
    xiri
        7
    xiri  
    &nbs;  2020-10-16 09:53:57 +08:00 via Android
    git 不适合管理大量二进制文件,,,
    你这样的需求为啥不用专业的系统备份软件?
    1KN6sAqR0a57no6s
        8
    1KN6sAqR0a57no6s  
       2020-10-16 09:54:21 +08:00   7
    居然两个人都没打对“临时文件” (狗头)
    u6pM63mMZ34z32cE
        9
    u6pM63mMZ34z32cE  
       2020-10-16 09:54:26 +08:00
    是个狼灭
    dtgxx
        10
    dtgxx  
       2020-10-16 09:56:24 +08:00   1
    直接看你的标题+你的头像=答案

    好多文件也不支持直接修改的,check 都得失败
    iRiven
        11
    iRiven  
       2020-10-16 10:12:14 +08:00
    你这个需求叫快照
    des
        12
    des  
       2020-10-16 10:18:27 +08:00
    防止系统被破坏?类似这个吗?
    https://support.apple.com/HT204899
    nutting
        13
    nutting  
       2020-10-16 10:27:36 +08:00
    git 接管后是有本地缓存的吧,相当于容量 x2 了,全盘怎么搞。再说,出问题了你还怎么进系统
    ZeoKarl
        14
    ZeoKarl  
       2020-10-16 10:43:12 +08:00
    git 对二进制类型的文件支持不行,这也是为啥不用 lfs,分分钟.git 膨胀上天的原因
        15
    zxCoder  
       2020-10-16 11:19:56 +08:00   1
    @YuxiangLuo 原来。。。。我还看了老半天以为是什么专业名词,还猜想说是不是指“平时经常用到的,跟零食一样的文件”。。。。。。
    icyalala
        16
    icyalala  
       2020-10-16 11:29:51 +08:00   1
    git 不追踪空目录哈哈哈。。
    yanqiyu
        17
    yanqiyu  
       2020-10-16 11:40:23 +08:00   1
    整个硬盘不行,但是对于操作系统文件可以(Linux 社区有这样的尝试),当然实现也不是 git ( git 不是干这个活的,这么多二进制用 git 怕不是爆炸),可以看看 https://silverblue.fedoraproject.org/ ,每个 install 有 commit hash, /usr 只读,但是启动的时候可以选择之前的 commit, 更新也类似于 git pull, 直接拉取上游的下一个 commit

    要是想要覆盖系统文件之外的东西,你还不如手动管理快照,要是愿意上 zfs, btrfs,用快照机制,应该也能做到你需要的效果,出问题就回滚快照。
    sparkle
        18
    sparkle  
       2020-10-16 12:03:43 +08:00
    理论上可行,实际上性能是主要的问题
    deorth
        19
    deorth  
       2020-10-16 12:18:32 +08:00
    你需要的是带快照的文件系统
    webshe11
        20
    webshe11  
       2020-10-16 12:20:20 +08:00
    什么“零食文件”,明明是“临时文酱”
    imn1
        21
    imn1  
       2020-10-16 12:39:38 +08:00
    洋大人脑子果然没有咱们好使,根本没想到可以这样用,搞得好多服务开始不久就要紧急叫停
    cheng6563
        22
    cheng6563  
       2020-10-16 12:48:47 +08:00 via Android
    Windows 有第三方 btrfs 驱动,只要你敢用
    phobal
        23
    phobal  
       2020-10-16 12:55:06 +08:00 via iPhone   1
    推荐把自己习惯的开发环境和软件都安装好,然后将它作为系统镜像,以后系统出问题了直接通过自己做的镜像恢复就好了。
    tairan2006
        24
    tairan2006  
       2020-10-16 13:51:28 +08:00
    大哥,你听过还原精灵么

    或者你听过 ghost 么
    fihserman123
        25
    fihserman123  
       2020-10-16 14:29:55 +08:00
    git 直接采用快照方式的直接备份,你硬盘够用吗?
    ungrown
        26
    ungrown  
       2020-10-16 14:52:43 +08:00
    如果仅仅是为了给操作系统做增量备份的话
    给系统做镜像呗
    windows 自带一个叫做“卷影复制服务”的功能
    所以 Windows 下 NTFS 文件系统可以进行热备份
    工具的话应该不止一种
    很多年前我喜欢并常用的软件是 drive snapshot,支持差分备份
    后来再也不做系统备份了
    (发现用不到了,手里的 Windows 系统能跑好几年不出问题,就算出了问题 win10 支持热重装并能保留原系统程序和用户文件,于是系统备份对我而言变得没什么用了)
    其实 Windows 自带的系统备份不也是挺好用的吗
    wuqingdzx
        27
    wuqingdzx  
       2020-10-16 15:09:56 +08:00
    傲梅轻松备份不好用吗?
    boris93
        28
    boris93  
       2020-10-16 15:11:41 +08:00 via Android
    放着成熟的备份方案不用非得给自己找别扭?
    而且 git 更适合管理纯文本文件,二进制文件不是不可以,但是这么大量就太胡搞了吧
    rockcat
        29
    rockcat  
       span class="ago" title="2020-10-16 15:59:17 +08:00">2020-10-16 15:59:17 +08:00
    Windows 自带的还原就可以吧。
    gxgxxn
        30
    gxgxxn  
       2020-10-16 17:42:08 +08:00
    @YuxiangLuo 我还奇怪零食文件是啥东西呐
    raymanr
        31
    raymanr  
       2020-10-16 18:07:16 +08:00
    不可行吧, 正在使用中的文件 git 是没法修改的, 除非你可以不进入 windows 就使用 git
    jeffreystoke
        32
    jeffreystoke  
       2020-10-16 22:32:49 +08:00
    楼主的想法是完全可行的, 如果没被楼上劝退的话, 不妨看看现成的工具 ( https://github.com/bup/bup)

    说起来大概在三四年前我就在用了, 不过当时还是 PoC, 用也是小规模的, 现在回看发现还在更新有点感动, 相比 snapshot 方式的话可以只回滚单个文件不影响其他文件
    xupefei
        33
    xupefei  
       2020-10-17 01:21:11 +08:00 via iPhone
    git 不备份文件权限。
    msg7086
        34
    msg7086  
       2020-10-17 04:42:48 +08:00
    你的想法是对的,但是实际使用中没办法这么干。

    etckeeper 就是用 Git 之类管理 etc 配置文件的。
    Linux 下因为有包管理,所以系统本身是由包管理保证正常工作的,所以只需要管理配置文件即可。

    Windows 下没有包管理,安装的软件都是自己想办法存二进制和配置,所以一方面二进制无法保证完整性,一方面配置文件也无法单独拿出来保存和恢复。

    而且你也说了,辣鸡多,那你 checkout 回去,辣鸡不是还在?美个啥。
    mscststs
        35
    mscststs  
       2020-10-17 13:43:48 +08:00
    我寻思 windows 自带的备份功能可以打包硬盘镜像吧。多挂一块硬盘定期备份就完事了。

    让 Git 维护二进制的话……你先想想怎么 忽略掉 系统盘的缓存和临时文件吧。
    reus
        36
    reus  
       2020-10-19 12:09:45 +08:00
    windows 没有 btrfs,没有 zfs
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4991 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:48 PVG 16:48 LAX 00:48 JFK 03:48
    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