V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pengjiayou
V2EX  ›  Ubuntu

SSD 装 Linux 选 Ext4 还是 Btrfs 好呢?

  •  
  •   pengjiayou · 2015-04-14 18:17:41 +08:00 · 50434 次点击
    这是一个创建于 3540 天前的主题,其中的信息可能已经有所发展或是发生改变。

    玩 Linux 是好几年前了,现在掏了一个新笔记本,ThinkPad X250 ,还在清关中,打算到货之后加装一块 M.2 SSD 然后安装 Ubuntu 14.04.2 LTS ,和自带 SSD 里的 Win 8 双启动。现在有两个问题?

    1)Bootloader 安装在加装的 SSD 上就好了吧?即便如此,安装 Ubuntu 的时候 Grub2 依然会修改 Win 8.1 的 EFI 分区?如果 Grub2 出问题,必须修复 Grub2 或者修复 Win 8.1 才能进系统?

    2)Btrfs 文件系统成熟了么?听说这货比 Ext4 更适合 SSD 。似乎搜索不到更多中文资料,有人说 Btrfs 在 deb 系的系统上跑得慢,还有说丢文件的,不过好像都是几年前了。。。 有最近在使用 14.04 SP2 和 Btrfs 的童鞋解答一下,要不然还是果断用 Ext4 算了。

    76 条回复    2015-04-22 12:33:00 +08:00
    ooxxcc
        1
    ooxxcc  
       2015-04-14 18:20:43 +08:00
    1. 看你具体安装设置,不好说

    2. btrfs资料还是很多的,有用的功能也不少,例如snapshot做增量备份。。

    不熟悉建议不要折腾,老老实实ext4吧
    pengjiayou
        2
    pengjiayou  
    OP
       2015-04-14 18:23:23 +08:00
    @ooxxcc EFI+GPT,双 SSD 装两个系统,Linux 上的 Grub2 貌似会修改一些 Windows 的文件?
    ooxxcc
        3
    ooxxcc  
       2015-04-14 18:31:40 +08:00
    @pengjiayou 好久没用这些了,而且当时是一个硬盘不同分区装的双系统,现在完全没印象了

    理论上可以硬盘1装Grub2,硬盘2装bootmgr,但是没试过不是很确定是否行得通

    个人建议直接一个系统+虚拟机吧……
    pengjiayou
        4
    pengjiayou  
    OP
       2015-04-14 18:35:40 +08:00
    @ooxxcc 虚拟机没意思,就双系统,我备份好 Win 8 折腾吧。

    希望楼下有人解答 Btrfs 的疑问
    billlee
        5
    billlee  
       2015-04-14 18:36:35 +08:00
    Btrfs 的数据格式稳定了,但是代码还是 under heavy development.

    https://btrfs.wiki.kernel.org/index.php/Main_Page
    Love4Taylor
        6
    Love4Taylor  
       2015-04-14 18:37:30 +08:00
    几天前btrfs刚掉过数据....幸好不是太重要的
    ooxxcc
        7
    ooxxcc  
       2015-04-14 18:37:39 +08:00
    @pengjiayou btrfs还在开发中,目前很多隐形的坑,不是有特殊用途的话不建议折腾
    ooxxcc
        8
    ooxxcc  
       2015-04-14 18:38:50 +08:00
    @Love4Taylor 上个月btrfs raid1挂了一个盘,然后我发现当年组raid的时候脑残没加mconvert和sconvert导致metadata是single的,差点数据全挂了
    myliyifei
        9
    myliyifei  
       2015-04-14 18:47:05 +08:00 via Android
    @ooxxcc 现在内核已经是正式版了。。当然我是不敢用。。
    Twinkle
        10
    Twinkle  
       2015-04-14 18:48:37 +08:00
    一般使用不会出问题,openSUSE 13.2 默认已经使用了 btrfs,至于 Ubuntu 上的稳定性就不知道了
    xierch
        11
    xierch  
       2015-04-14 19:54:13 +08:00
    EFI 的话,是 Windows 的引导程序和 GRUB 同时存在于 EFI 分区吧
    然后主板的 BIOS/UEFI 决定装载哪个引导程序
    如果你默认是进入 GRUB 的,然后 GRUB 出了问题,应该能在开机时按 F11/F12 选择进入 Windows
    pengjiayou
        12
    pengjiayou  
    OP
       2015-04-14 19:59:35 +08:00
    @Love4Taylor 那还是果断 Ext4 吧
    pengjiayou
        13
    pengjiayou  
    OP
       2015-04-14 20:01:03 +08:00
    @myliyifei 谢谢提醒。
    pengjiayou
        14
    pengjiayou  
    OP
       2015-04-14 20:01:54 +08:00
    @Twinkle OpenSuSe 是不是只是 / 分区是 brtfs ,如果把 /home 独立出来官方建议用 brtfs 吗?
    pengjiayou
        15
    pengjiayou  
    OP
       2015-04-14 20:02:50 +08:00
    @xierch 谢谢提醒,也就是说 UEFI 下,Grub2 实际上是增加了一个引导文件在 EFI 分区?
    Twinkle
        16
    Twinkle  
       2015-04-14 20:17:30 +08:00
    @pengjiayou 不是啊,都可以用 brtfs,官方倒是没有什么建议的说法
    tyfulcrum
        17
    tyfulcrum  
       2015-04-14 20:24:56 +08:00 via iPhone
    @pengjiayou openSUSE自动分区的时候 /home 用的是 XFS,当然你可以自己手动调整你自己想要的格式。
    kiritoalex
        18
    kiritoalex  
       2015-04-14 22:27:40 +08:00
    Highly recommend you to remain the default file system of the partitioning step of OpenSUSE.Whether it's SSD or not,considering the stability and performance,please choose Btrfs.
    For server,you can use Btrfs as well,especially some servers need high availability of disk reading performance(e.g,the server which is providing the service of mirroring,may need counter huge writing and reading data,see mirror server of Tsinghua University Network Association)
    Besides,Btrfs is copy-on-write,so just think carefully if you are using other GNU/Linux OS
    phx13ye
        19
    phx13ye  
       2015-04-14 22:44:49 +08:00
    不瞎搞,btrfs绝对production ready
    Cu635
        20
    Cu635  
       2015-04-14 22:46:32 +08:00
    btrfs最新版本的debian stable已经加入内核了。
    Cu635
        21
    Cu635  
       2015-04-14 22:46:55 +08:00
    最新版本的debian stable已经把btrfs加入安装时候的选项中了。
    phoeagon
        22
    phoeagon  
       2015-04-14 22:53:06 +08:00
    你既然说不出btrfs有什么好,那么就不需要了。
    ChiangDi
        23
    ChiangDi  
       2015-04-14 22:56:11 +08:00 via Android
    大家说说 btrfs 有哪些特别的好处,我电脑整个硬盘整个都是 SSD,如果真有什么特别好处的话我肯定会切过去的。
    jarlyyn
        24
    jarlyyn  
       2015-04-14 23:09:16 +08:00
    @ChiangDi
    定时snapshot。

    写个脚本做定时增量备份。
    icesof
        25
    icesof  
       2015-04-14 23:13:51 +08:00
    为什么没有考虑开始用XFS?
    kiritoalex
        26
    kiritoalex  
       2015-04-14 23:19:42 +08:00
    @ChiangDi SSD (Flash storage) awareness (TRIM/Discard for reporting free blocks for reuse) and optimizations (e.g. avoiding unnecessary seek optimizations, sending writes in clusters, even if they are from unrelated files. This results in larger write operations and faster write throughput)
    ryd994
        27
    ryd994  
       2015-04-14 23:32:59 +08:00   ❤️ 1
    @kiritoalex ext4加discard其实也都有
    Earthman
        28
    Earthman  
       2015-04-14 23:47:25 +08:00
    我试过btrfs啊,grub2+GPT+btrfs+SSD,可以正常引导,还带win双系统。不过颇费功夫。最后还是换回ext4了
    nocwat
        29
    nocwat  
       2015-04-14 23:50:48 +08:00
    如果是新的kernel可以考虑使用专门针对flash优化的 f2fs,不过需要自己折腾下
    xierch
        30
    xierch  
       2015-04-15 00:05:06 +08:00
    @pengjiayou 应该是,但其实我也没在 EFI 装过 GRUB..
    3.3 以后的内核能够直接被主板 EFI 引导,可以不需要另外的引导程序,上次我装 Arch 的时候用的是这种方式..
    xierch
        31
    xierch  
       2015-04-15 00:09:42 +08:00
    https://wiki.archlinux.org/index.php/EFISTUB

    “The Linux Kernel (linux>=3.3) supports EFISTUB (EFI BOOT STUB) booting. This feature allows EFI firmware to load the kernel as an EFI executable.”

    “UEFI is designed to remove the need for an intermediate bootloader such as GRUB.”

    听起来挺厉害的
    CupTools
        32
    CupTools  
       2015-04-15 03:01:38 +08:00
    ZFS不解释
    linux40
        33
    linux40  
       2015-04-15 07:59:37 +08:00 via Android
    不作死的话还是可以的,感觉就是慢了点。。。
    coolcfan
        34
    coolcfan  
       2015-04-15 08:21:11 +08:00
    btrfs inode……
    comicfans44
        35
    comicfans44  
       2015-04-15 09:30:26 +08:00   ❤️ 3
    个人使用btrfs,感觉优势主要是功能:
    1.瞬间snapshot(cow,snapshot几乎不占任何空间)
    2.动态扩容(不同的块设备可随时加入到空间不足的分区里,新分区,新硬盘都可以。不用费劲调整分区)
    3.增量备份(基于snapshot的diff,效率高于rsync)。
    4.内置自动压缩(设定压缩后,btrfs尝试压缩文件头,仅在结果更小的情况下才压缩整个文件,所以可以直接使用在包含可压缩数据和不可压缩数据混合的文件夹上)
    5.完整性功能内置,一般的意外关机不需要fsck(btrfs的完整功能fsck还没有开发完成,但自从我使用btrfs以来的意外断电,都可以直接正常挂载)

    至于ssd和hdd的跑分日常使用中比不上ext4(可以参考phoronix.com的filesystem benchmark,多线程IO中btrfs才有优势)。
    comicfans44
        36
    comicfans44  
       2015-04-15 09:49:38 +08:00   ❤️ 2
    EFI+GPT 的启动环境,多个EFI启动器共存在共享的esp分区的各自的目录下,并向EFI注册自身(在efi设置中可选其中之一作为默认启动项)。但是esp分区下的/EFI/boot/boot.efi(也可能是bootx64.efi)将作为没有任何注册选项时的默认项。安装linux过程中应该只是将grub注册成了默认的启动器(通常文件放在/EFI/grub)。微软的EFI启动器在/EFI/microsoft下,不受linux安装grub的影响。如果修改了windows文件,那只可能是修改/EFI/boot/boot.efi (windows安装后,/EFI/boot/boot.efi这个文件应该就是/EFI/microsoft/bootmgfw.efi)。

    不过EFI+GPT可以更灵活,任意的fat分区只要有/EFI/boot/boot.efi 都可以被系统识别为启动分区。在linux安装过程中,你可以手动创建一个fat分区并挂载在/boot/efi目录下,这样linux就会把grub的内容都写在这个fat分区下,完全和默认的esp分区相隔离,这样也就不会修改esp分区里windows的任何文件了(本人msi H77 主板支持这种配置,楼主可能需要自行尝试)
    ryd994
        37
    ryd994  
       2015-04-15 10:23:21 +08:00 via Android
    @comicfans44 btrfs的fsck还很不稳定。我半年前因为这个丢过数据。
    而且btrfs的snapshot和raid功能用lvm都能实现。lvm现在已经是默认了吧,还有thinprovision。
    ryd994
        38
    ryd994  
       2015-04-15 10:25:35 +08:00 via Android
    ssd有件事大家务必试试
    scheduler设为noop
    搜索disk scheduler
    comicfans44
        39
    comicfans44  
       2015-04-15 10:44:30 +08:00
    @ryd994 当初接触LVM的时候还没有thinprovision这样的功能(这个是不是12年才有的?),后来使用btrfs后也没再关注LVM,受教了。
    longestusername
        40
    longestusername  
       2015-04-15 10:48:44 +08:00
    刚配了个双6TB硬盘的Ubuntu Server 64 服务器。 ext4非常好。
    jarlyyn
        41
    jarlyyn  
       2015-04-15 12:33:47 +08:00
    @ryd994

    没记错的话btrfs的snapshot功能lvm压根不能实现。

    应为我大约在大半年做过一次技术选择。

    btrfs的snapshot功能是大约是copy on write的。

    只要做一个snapshot可以放心的长期保存。

    写一个简单脚本可以实现定期的增量备份。

    当然,其实在在btrfs里这个功能是通过subvolume来实现的。



    而lvm的snapshot是创建一个临时空间,需要指定大小,把新的数据都写入进去。

    只能适合做备份用途。

    如果版本有更新,那可能我需要去更新下我的只是储备了。
    ryd994
        42
    ryd994  
       2015-04-15 13:14:46 +08:00 via Android
    @jarlyyn 在snapshot分配的空间用完之钱,数据就是安全的。可以使用lvm-monitor
    ryd994
        43
    ryd994  
       2015-04-15 13:17:08 +08:00 via Android
    @jarlyyn 在snapshot分配的空间用完之前,数据就是安全的。可以使用lvm-monitor自动分配更多空间。当然snapshot最初的初衷
    ryd994
        44
    ryd994  
       2015-04-15 13:19:20 +08:00 via Android
    @jarlyyn lvm snapshot最初的初衷是方便在线备份,用完就删了。不过真要长期备份的话,难道不是该备份到其他储存么?
    在同一个磁盘上怎么备份其实都不靠谱
    ryd994
        45
    ryd994  
       2015-04-15 13:22:49 +08:00 via Android
    @jarlyyn lvm也是cow啊,我看不出在使用上有什么区别。而且lvm的snapshot还可以rw挂载。用在虚拟机上特别方便。只需要做一个base,然后分一堆snapshot。
    cattyhouse
        46
    cattyhouse  
       2015-04-15 13:27:46 +08:00 via iPhone
    ext4比较快。
    lucifer9
        47
    lucifer9  
       2015-04-15 13:32:37 +08:00
    f2fs呢,ssd的话这个挺合适的啊
    jarlyyn
        48
    jarlyyn  
       2015-04-15 14:03:43 +08:00
    @ryd994
    定时快照,增量备份,数据回溯。最早我是用在文件服务器上。经常用来给设计找“今天上午10点前存盘过的某设计稿”。
    jarlyyn
        49
    jarlyyn  
       2015-04-15 14:06:05 +08:00
    @ryd994

    如我们内网文件服务器的小时备份目录

    2unc
        50
    2unc  
       2015-04-15 14:58:07 +08:00
    一个笔记本而已,那些所谓的好处基本在你本子的生命周期里是感受不到的, 做好重要文件的备份用哪个都一样,喜欢新奇就折腾,不爱折腾默认支持的也足够了。
    kongkongyzt
        51
    kongkongyzt  
       2015-04-15 15:54:01 +08:00 via iPad
    推荐ext4,不为别的,就为了稳定

    一年前折腾过btrfs,感觉不是很稳定,丢过数据,不知道现在怎么了
    ryd994
        52
    ryd994  
       2015-04-15 16:04:58 +08:00 via Android
    @jarlyyn git啊……
    这样的需求用lvm做是有点太重了。如果是二进制文件的话,用btrfs确实就是最好的选择了

    @kongkongyzt 同丢过数据的路过……
    jarlyyn
        53
    jarlyyn  
       2015-04-15 16:11:49 +08:00
    @ryd994
    先不说git不适合2进制。

    这玩意就是用来防意外的。理论上数据库也可以回溯。

    最关键是,git还是需要主动做的,而且项目大的话还需要时间生成索引吧。

    这个是实时的。

    所以感觉用来当文件服务器很不错。

    当然,我自己的笔记本还是ext4的。

    现在连lvm+加密卷都不高兴了。上次硬盘出了问题,加密数据根本没的救。
    ryd994
        54
    ryd994  
       2015-04-15 16:30:19 +08:00 via Android
    @jarlyyn 程序员用git已经成为习惯了,反正也是要做的,免得手贱改来改去想想又不要了。基本上写了一个阶段喝水时就顺手commit一下。git对大量小文件二进制问题不大,只要不是一个大包就行。
    硬盘出问题的话btrfs也没救啊。
    btrfs目前如果文件表有错误的话,有很大概率修不好。也就是说没事最好,有事就是大事。
    jarlyyn
        55
    jarlyyn  
       2015-04-15 16:31:41 +08:00
    @ryd994
    公司又不会只有程序员……
    nesuk
        56
    nesuk  
       2015-04-15 18:01:58 +08:00
    昨晚买好了配件,今晚组装. 1SSD+1HD, Win+Ubuntu双系统好整吗?
    pengjiayou
        57
    pengjiayou  
    OP
       2015-04-15 23:31:15 +08:00
    @phoeagon 对延长 SSD 寿命有好处啊
    pengjiayou
        58
    pengjiayou  
    OP
       2015-04-15 23:33:08 +08:00
    @tyfulcrum 谢谢!
    pengjiayou
        59
    pengjiayou  
    OP
       2015-04-15 23:33:31 +08:00
    @phx13ye 那我就试试吧
    pengjiayou
        60
    pengjiayou  
    OP
       2015-04-15 23:34:46 +08:00
    @xierch 谢谢!
    likuku
        61
    likuku  
       2015-04-15 23:36:12 +08:00
    btrfs 会死的很难看....
    likuku
        62
    likuku  
       2015-04-15 23:37:15 +08:00
    我自己的 linux 笔记本从上学起到现在工作每天用的的,都是 xfs
    pengjiayou
        63
    pengjiayou  
    OP
       2015-04-15 23:38:38 +08:00
    @comicfans44 你的回答太有价值了,谢谢!
    likuku
        64
    likuku  
       2015-04-15 23:40:02 +08:00
    btrfs 的坑,去年又被狠狠坑了一次,还是公司的开发机,搞得 站点和 svn 库所在的分区没法写入,也基本没法读取(几十KB/sec的读取速度),折腾了两天才导出数据火速切换成默认的 Ext4。

    以为这么多年过去了终于能用了吧。。。也是指望用它的 snapshot。
    pengjiayou
        65
    pengjiayou  
    OP
       2015-04-15 23:40:13 +08:00
    @nesuk 好整
    pengjiayou
        66
    pengjiayou  
    OP
       2015-04-15 23:42:23 +08:00
    @likuku xfs 听说和 Btrfs 很类似,这货对于 SSD 支持怎么样?
    likuku
        67
    likuku  
       2015-04-15 23:43:29 +08:00
    目前经过充足实际检验的,开源免费,用在生产环境稳定可靠的 cow 的 snapshot FS就是 zfs 了。

    但成熟的也就 freebsd 可以用,所以我这拿来作备份存储的就是跑的 freebsd + zfs
    likuku
        68
    likuku  
       2015-04-15 23:48:45 +08:00
    @pengjiayou xfs 是传统的fs,只是是 pc 上最早的64bit FS,超大分区和超大文件很早就完善支持,redhat9 时我就开始用xfs,不是 cow 的。

    没有snapshot,不方便在线扩容和缩容,无需 fsck,给网吧用和上学时用xfs,就是因为无需 fsck + 存储可靠不怕意外断电。

    ssd 嘛,没觉得上面用不同文件系统有啥大的差异 (btrfs 这个坑货 和 整套存储系统伪装成 FS 的 ZFS这两除外)。
    likuku
        69
    likuku  
       2015-04-16 00:06:12 +08:00
    参考:

    btrfs 的效能真不是一个“烂”字可以形容~! - V2EX : https://www.v2ex.com/t/25686

    在经常突然断电的情况下,使用 ext4 和 xfs 哪个文件系统更安全? - V2EX : https://www.v2ex.com/t/146662
    myliyifei
        70
    myliyifei  
       2015-04-16 00:11:24 +08:00
    @comicfans44 还有个功能 去重。估计比不上商业的存储,但是开源免费的嘛。。
    likuku
        71
    likuku  
       2015-04-16 00:32:58 +08:00
    @myliyifei zfs 也有去重,2012年时在 freebsd 9.0 stable 多硬盘的 zfs raidz1 上测试过,很快就不堪重负...尤其是删除 snapshot 时。
    comicfans44
        72
    comicfans44  
       2015-04-16 07:46:52 +08:00
    @myliyifei btrfs介绍里面说这个功能需要用户空间进程的协助,觉得比较麻烦就没有用过。
    notnumb
        73
    notnumb  
       2015-04-16 11:54:05 +08:00
    zfs甩了btrfs几条街的节奏
    archbishop
        74
    archbishop  
       2015-04-16 21:31:20 +08:00 via iPhone
    前来学习
    ryd994
        75
    ryd994  
       2015-04-16 22:49:59 +08:00 via Android
    @comicfans44 fsck也是用户空间的LOL
    chilaoqi
        76
    chilaoqi  
       2015-04-22 12:33:00 +08:00
    恩,我前两天刚装了ubuntu 14.04 , brtfs, 中途出去吃饭,笔记本断电了,就再也开不了机了。
    Google一下,brtfs就是会这样,日志混乱了。要不,你也试试?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2968 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:10 · PVG 21:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.