PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

[教学] Linux下EXT4分区开启Trim及验证的方法

[复制链接]
跳转到指定楼层
1#
点击数:21115|回复数:22
本帖最后由 James007ss 于 2012-11-27 22:56 编辑

上次我玩Ubuntu发帖子后,看到有坛友提到对Trim是否支持的问题,这2天有点时间,所以就去查了下资料,目前可以确定内核版本为2.6.33及更新的Linux,只要使用EXT4分区格式,是完全可以支持系统自动Trim功能的,具体的开启及验证方法,请大家慢慢看下去吧。

先说一下我现在的平台配置:
CPU:AMD Phenom II X4 955 BE(OC 4GHz)
主板:Gigabyte GA-890GPA-UD3H v1.0
内存:Crucial BLT4G3D1869DT2TXOB(4GB x 2)
SSD:Plextor(浦科特) M3P 128GB
显卡:HIS HD 4870 IceQ 4+ Turbo 1GB

这里我还是用Ubuntu 12.10来演示,安装好系统进入桌面后,运行命令行工具。Ubuntu就是UXTerm了。


要在Linux下对SSD开启系统自动Trim功能,我们需要做的是修改文件系统的配置表,添加对应的分区格式参数。

不过文件系统配置表是非常重要的系统文件之一,如果修改错误,会导致无法再正常进入系统,所以我们要先做好备份,首先在命令行工具输入:
  1. sudo cp /etc/fstab ~/fstab-backup
复制代码
这行命令是把fstab文件复制并改名为fstab-backup的文件作为备份,输入并回车后会提示需要授权密码,正确输入密码后如下图,即代表操作成功。


备份完毕我们就可以去修改fstab文件了,由于fstab是系统文件,如果直接在图形界面打开,是不允许编辑,因此我们需要用授权模式打开文件,在命令行界面输入以下命令:
  1. gksudo gedit /etc/fstab
复制代码

检测命令输入无误后回车便能看到弹出如下图的窗口


要开启自动Trim功能,我们需要在options一项的内容上添加对应的参数,EXT4分区需要添加的参数为:discard

新添加的参数跟原来的参数要加半角“,”来区分开,正确添加参数后如下图所示:

正确编辑好fatab文件后,我们只需要保存文件,重启电脑后自动Trim即会生效。
注意:编辑完后请仔细认真检查,确认无误后才保存文件并重启电脑,否则会导致挂载磁盘出错而无法正常进入系统。

在WIN7下,我们只需要确保3个条件成立就可以确定Trim是开启了的,但要验证却不甚容易(虽然一般也没需要特地去验证),那linux呢?

Linux下其实有一个不太复杂的验证方式,大家请看下去。
首先我们重新打开命令行窗口,进入SSD分区下的目录。以我这里的home目录为例,则需要输入的命令为:cd /home


进入目录后,我们新建一个名为tempfil的临时文件,输入命令:
  1. sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
复制代码
回车后同样需要输入授权密码,正确输入密码后,看到如下图的显示则表示文件已经创建成功。


接着我们需要先查询到这个文件占用的LBA地址,输入命令:
  1. sudo hdparm --fibmap tempfile
复制代码
回车后看到下图,其中第1行中对应begin_LBA一项的数字就是我们需要的,先记下来。

这里我顺道打开home目录给大家看一下,tempfile这个测试文件就被创建在这里。

然后我们还需要确认SSD的标识符,运行磁盘工具就能看到,如下图,我的M3P标识符为sde。


在命令行界面继续输入命令:
  1. sudo hdparm --read-sector 41286656 /dev/sde
复制代码
大家请自行更换对应的LBA地址数字及硬盘标识符,然后会看到如下图,显示出一堆以16进制显示的数据。


我们再输入以下2个命令以删除测试文件并要求系统同步向硬盘发出删除指令:
  1. sudo rm tempfile
  2. sync
复制代码
执行命令后,如下图,看到测试文件已经被删除了。

上图看到测试文件已经被删除了。

然后我们再执行一次检查LBA地址数据的命令
  1. sudo hdparm --read-sector 41286656 /dev/sde
复制代码
如果列出的数据全部是0,那就代表自动Trim已经被正确开启了,但因为SSD对系统的Trim指令响应存在延迟的可能,有时会需要我们重复多几次的操作,才能看到全0的显示。如下图,我就是再重复创建并删除了1次文件后才获得这个结果。


到此为止,我已经正常在Ubuntu 12.10内为我M3P的EXT4分区开启了自动Trim。

这里可能有人会问,如果是其它分区格式呢?若误修改fstab导致无法进入系统,要怎么恢复?

这两个问题,我在后面的帖子会接着给大家答案。先让我休息下吧,折腾次Linux不容易,谁叫我手上就只有1个SSD和1台电脑呢。

2#
donnyng 发表于 2012-11-26 21:53 | 只看该作者
好机器!4870热么。。。
我之前用的ubuntu,我感觉是自动开启的呢。。。
3#
James007ss  楼主| 发表于 2012-11-27 22:56 | 只看该作者
donnyng 发表于 2012-11-26 21:53
好机器!4870热么。。。
我之前用的ubuntu,我感觉是自动开启的呢。。。

我用的12.10是没有自动启用这参数,需要手动添加。
4#
donnyng 发表于 2012-11-27 23:05 | 只看该作者
James007ss 发表于 2012-11-27 22:56
我用的12.10是没有自动启用这参数,需要手动添加。

迟点再装一遍看看。各种软件不适应。
5#
song_1118 发表于 2012-11-28 08:04 | 只看该作者
========
    学习了!多谢分享!
    个人偏向openSUSE,请问其开启Trim方面有是如何的?
6#
James007ss  楼主| 发表于 2012-11-28 19:26 | 只看该作者
song_1118 发表于 2012-11-28 08:04
========
    学习了!多谢分享!
    个人偏向openSUSE,请问其开启Trim方面有是如何的? ...

不太了解openSUSE,不过开Trim应该只跟Linux的核心版本和分区格式有关。只要是2.6.33或更新版的linux核心,分区是采用EXT4的话,用上面的方式都是能正常开启的。
7#
wsy2220 发表于 2012-11-29 20:16 发自PCEVA移动客户端 | 只看该作者
顶起,应该有不少人需要看此帖
8#
sunzhe7788 发表于 2012-11-29 20:44 | 只看该作者
支持邦德折腾~~玩过一次linux,功课没做好,没网卡驱动~~悲剧
9#
雷雷雷 发表于 2012-11-30 17:11 | 只看该作者
比较复杂,Linux下有类似AS SSD Benchmark之类的简单跑分软件吗?
有没有对比测试过各种SSD在Linux下的表现是否和Windows下的强弱相同?
10#
Blxkcstb 发表于 2012-11-30 17:20 | 只看该作者
雷雷雷 发表于 2012-11-30 17:11
比较复杂,Linux下有类似AS SSD Benchmark之类的简单跑分软件吗?
有没有对比测试过各种SSD在Linux下的表现 ...

我听说linux的磁盘性能比win好的。
11#
雷雷雷 发表于 2012-11-30 17:30 | 只看该作者
Blxkcstb 发表于 2012-11-30 17:20
我听说linux的磁盘性能比win好的。

哪点好呢?
12#
Blxkcstb 发表于 2012-11-30 18:17 | 只看该作者
雷雷雷 发表于 2012-11-30 17:30
哪点好呢?

linux毕竟还是服务器用得多,所以优化方面做得比win好吧,我猜的。
13#
雷雷雷 发表于 2012-11-30 19:11 | 只看该作者
Blxkcstb 发表于 2012-11-30 18:17
linux毕竟还是服务器用得多,所以优化方面做得比win好吧,我猜的。

我感觉服务器用Linux多完全是因为Linux是免费的呀,大公司才有服务器,而大公司最容易成为微软的被告。。
14#
mcszjs 发表于 2012-11-30 21:06 | 只看该作者
雷雷雷 发表于 2012-11-30 19:11
我感觉服务器用Linux多完全是因为Linux是免费的呀,大公司才有服务器,而大公司最容易成为微软的被告。。 ...

企业服务器级别的linux也不大可能会是免费版了,要么公司自己有能力开发专用版本,要么就是买别人做好的。
15#
雷雷雷 发表于 2012-11-30 21:46 | 只看该作者
mcszjs 发表于 2012-11-30 21:06
企业服务器级别的linux也不大可能会是免费版了,要么公司自己有能力开发专用版本,要么就是买别人做好的 ...

这样啊,那Linux下有没有能够一键设置Trim的软件呢,这些看起来有点头大呀。。
不好用,所以家用就普及不开呢
16#
James007ss  楼主| 发表于 2012-11-30 22:26 | 只看该作者
雷雷雷 发表于 2012-11-30 21:46
这样啊,那Linux下有没有能够一键设置Trim的软件呢,这些看起来有点头大呀。。
不好用,所以家用就普及不 ...

暂时我是没看到有,不过这类软件应该也不是完全不可能做出来,所以实际有没有就不好说了。linux以我这段时间折腾下来,其实也没想像中复杂。当然以完全习惯win的普通用户来说,易用性可能还有不少差距。
17#
mechgouki 发表于 2012-12-1 12:30 | 只看该作者
雷雷雷 发表于 2012-11-30 17:11
比较复杂,Linux下有类似AS SSD Benchmark之类的简单跑分软件吗?
有没有对比测试过各种SSD在Linux下的表现 ...

没啥可比性 文件系统设计不太一样

如果是RAW的访问 基本是啥差别
18#
mechgouki 发表于 2012-12-1 12:32 | 只看该作者
雷雷雷 发表于 2012-11-30 19:11
我感觉服务器用Linux多完全是因为Linux是免费的呀,大公司才有服务器,而大公司最容易成为微软的被告。。 ...

No 服务器的要求不一样的

而且 其实企业版本的linux比windows要贵 否则Redhat 也不会成为一个收入超过 1B的open source公司

对于企业来说 Windows还是便宜的选择
19#
mechgouki 发表于 2012-12-1 12:35 | 只看该作者
雷雷雷 发表于 2012-11-30 21:46
这样啊,那Linux下有没有能够一键设置Trim的软件呢,这些看起来有点头大呀。。
不好用,所以家用就普及不 ...

写个脚本就简单了

我用了10多年的linux 就是看上 它简单 省事情 当然这是建立你了解这个系统的情况下 很多时候 换个机器 插上老硬盘 系统就可以直接用
这在Windows是不可想象的

在比如吧 其实只要你硬件是大众货 很多发现版本都不需要安装啥驱动的---顶多装一下显卡驱动 不过反正没啥游戏玩 装不装其实没啥区别
20#
wanganjun 发表于 2012-12-1 13:24 | 只看该作者
http://linux-wiki.cn/wiki/zh-han ... %E7%A1%AC%E7%9B%98)

这里面说linux下实时trim效果不好,定时trim就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部