固态硬盘 linux?移动硬盘装linux
固态硬盘在linux下怎么优化
1.使用Ext4 without journaling文件系统
传统的SSD+Linux组合一般推荐Ext2文件系统,主要是考虑到Ext3、Ext4需要额外的记录日志,会缩短SSD使用寿命,而且新出现的TRIM技术在Ext2中有两个缺点:
仅支持离线TRIM,换句话说文件系统必须只读挂载;
需要手动执行hdparm命令或wiper.sh脚本。
Ext4则没有这些限制,允许TRIM后台运行,并且日志记录功能可以手动关闭(没有日志的情况下,文件系统更容易损坏,如突然断电),如果你甘愿冒这样的风险,从而延长SSD使用寿命,值得一试。另外,许多测试中如:Testing EXT4& Btrfs On A Serial ATA 3.0 SSD,像Btrfs这样为SSD准备的文件系统不如Ext4速度快(用SSD不就为了快么)。
所以,上面安装系统时,选择了Ext4系统,接下来需要关闭日志功能。
首先,系统挂载时无法停用日志功能,所以需要进入刚才的U盘系统,利用root权限执行:
tune2fs-O ^has_journal/dev/sda1
即关闭/dev/sda1上的日志功能。
然后,运行操作系统检测:
e2fsck-f/dev/sda1
不这样,文件系统可能会出错。
最后,重启,进入SSD中的系统,检查是否设置成功:
dmesg| grep EXT4
如果出现:
EXT4-fs(sda1): mounted filesystem without journal
说明设置成功。
原来是:mounted filesystem with ordered data mode
如果需要再次开启日志功能,只要运行tune2fs-O has_journal/dev/sda1即可。
2.开启TRIM功能
TRIM是一种操作系统调度SSD块写入的方式。主要是因为同一个SSD的闪存单元频繁操作会磨损,影响使用寿命,区别于传统的机械硬盘处理删除数据。Linux内核自2.6.33开始支持TRIM。
首先,检查内核版本是否支持TRIM:
uname-a
然后,检查SSD硬盘是否支持TRIM:
hdparm-I/dev/sda
如果显示比如(不同硬件可能不同提示):
* Data Set Management TRIM supported
说明支持。
这两个条件都满足,在/etc/fstab中将:
/dev/sda1/ ext4 defaults改为:
/dev/sda1/ ext4 discard,defaults分区、挂载点、已经存在的选项不一定一样。
测试新的fstab文件:
mount-oremount/dev/sda1
然后挂载:
mount
如果显示discard字样,说明成功,如:
/dev/sda1 on/ type ext4(rw,discard)
3.swap空间处理
对于大内存来说swap基本上都是空闲的,除非电脑进入休眠状态,系统会将内存内容转到swap中。有了SSD,开关机都在几秒中,对我来说swap没用,所以上面直接不分配swap空间。
如果分配了也行,空间要小,而且通过设置/proc/sys/vm/swappiness里面的值,来减少swap换出量:
echo 1>/proc/sys/vm/swappiness
0到100之间,值越大换出量越大。
4.设置noatime
当访问文件时,系统会更新last-access这个文件/目录元数据,设置noatime后可以减少这种操作。
将2步中的:
/dev/sda1/ ext4 discard,defaults改为:
/dev/sda1/ ext4 noatime,discard,defaults测试设置成功方法与上面一样。
5.使用noop磁盘调度
通常操作系统调度机械硬盘时会提供一些数据的物理位置,这样有利于机械硬盘优化寻道,但是对SSD没意义,所以采用noop磁盘调度,即简单发送请求,可以提高效率。
可以通过以下命令查看调度方法:
cat/sys/block/sda/queue/scheduler
比如显示:
[noop] deadline cfq
在/etc/rc.local中添加如下语句:
echo noop>/sys/block/sda/queue/scheduler
6.内存分区加速
如果内存够大,可以用ramdisk的方式,将一些经常变化的位置如/tmp放入内存,加快速度,减少对SSD的访问。
依然是加在/etc/fstab中:
tmpfs/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs/var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs/var/log tmpfs defaults,noatime,mode=1777 0 0
更新方法与2相同,记得将浏览器等程序的缓存目录设置到/tmp下。
固态硬盘只能格式化为exFAT格式,不能分区为NTFS格式。
SSD固态硬盘可以使用NTFS分区。
硬盘常见的分区:
FAT16
简介:对电脑老手而言,对这种硬盘分区格式是最熟悉不过了,我们大都是通过这种分区格式认识和踏入电脑门槛的。它采用16位的文件分配表,能支持的最大分区为2gb,是曾经应用最为广泛和获得操作系统支持最多的一种磁盘分区格式,几乎所有的操作系统都支持这一种格式,从DOS、Win 3.x、Win 95、Win 97到Win 98、Windows NT、Windows 2000、Windows XP以及Windows Vista和Windows 7的非系统分区,一些流行的Linux都支持这种分区格式。
但是FAT16分区格式有一个最大的缺点,那就是硬盘的实际利用效率低。因为在DOS和 Windows系统中,磁盘文件的分配是以簇为单位的,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。而且每簇的大小由硬盘分区的大小来决定,分区越大,簇就越大。例如1GB的硬盘若只分一个区,那么簇的大小是32KB,也就是说,即使一个文件只有1字节长,存储时也要占32KB的硬盘空间,剩余的空间便全部闲置在那里,这样就导致了磁盘空间的极大浪费。FAT16支持的分区越大,磁盘上每个簇的容量也越大,造成的浪费也越大。所以随着当前主流硬盘的容量越来越大,这种缺点变得越来越突出。为了克服FAT16的这个弱点,微软公司在 Windows 97操作系统中推出了一种全新的磁盘分区格式FAT32。
FAT32
简介:这种格式采用32位的文件分配表,使其对磁盘的管理能力大大增强,突破了FAT16对每一个分区的容量只有2GB的限制,运用FAT32的分区格式后,用户可以将一个大硬盘定义成一个分区,而不必分为几个分区使用,大大方便了对硬盘的管理工作。而且,FAT32还具有一个最大的优点是:在一个不超过8GB的分区中,FAT32分区格式的每个簇容量都固定为4KB,与FAT16相比,可以大大地减少硬盘空间的浪费,提高了硬盘利用效率,但是,FAT32的单个文件不能超过4G。
支持这一磁盘分区格式的操作系统有Windows 97/98/2000/XP/Vista/7/8等。但是,这种分区格式也有它的缺点,首先是采用FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的硬盘要慢;另外,由于DOS系统和某些早期的应用软件不支持这种分区格式,所以采用这种分区格式后,就无法再使用老的DOS操作系统和某些旧的应用软件了。
NTFS
简介:NTFS是一种新兴的磁盘格式,早期在 Windows NT网络操作系统中常用,但随着安全性的提高,在 Windows Vista和 Windows 7操作系统中也开始使用这种格式,并且在 Windows Vista和 Windows 7中只能使用NTFS格式作为系统分区格式。其显著的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片,对硬盘的空间利用及软件的运行速度都有好处。而且单个文件可以超过4G。它能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了网络系统与数据的安全。
exFAT
简介:exFAT(全称Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)是Microsoft在Windows Embeded 6.0(包括Windows CE 6.0、Windows Mobile)中引入的一种适合于闪存的文件系统。对于闪存,NTFS文件系统过于复杂,exFAT更为适用。
相对FAT文件系统,exFAT有如下好处:
·增强了台式电脑与移动设备的互操作能力
·单文件大小最大可达16EB(2,305,843,009,213,693,952字节,就是16M个TB,1TB=1024G)
·簇大小可高达32MB
·采用了剩余空间分配表,剩余空间分配性能改进
·同一目录下最大文件数可达65 536个
·支持访问控制
·支持TFAT
采用该文件系统的闪存盘不支持Windows Vista ReadyBoost。Windows Vista SP1支持该文件系统。
注:exFAT只是一个折中的方案,只为U盘而生。
需要严格注意的是,这种分区只有Vista、Win7、Win8等系统支持,其他系统不能使用,xp可以通过替换驱动文件的方式支持此格式,但是只能读写,不能格式化。
通过以上描述可得:SSD固态硬盘可使用NTFS格式,且使用win7及以上系统都需要使用此格式。
linux怎么判断磁盘是机械还是固态
在Linux系统中判断磁盘是机械还是固态,可以通过几种方法。常用的方法包括使用lsblk命令、查看/sys文件系统及使用hdparm命令。
使用lsblk命令列出所有磁盘设备并显示每个设备信息,其中ROTA列表示磁盘是否为旋转磁盘。如果ROTA的值为1,则表示为机械硬盘(HDD);若为0,则为固态硬盘(SSD)。
另外,通过检查/sys/block//queue/rotational文件,可以获取磁盘是否旋转的信息。将``替换为实际设备名称,如果返回值为1,表示为机械硬盘(HDD);返回值为0,则为固态硬盘(SSD)。
还可以使用hdparm工具获取磁盘旋转信息。将``替换为实际设备名称运行命令。若有输出旋转速度(如7200 rpm),表示为机械硬盘(HDD);无旋转速度输出,则可能是固态硬盘(SSD)。
以上方法在Linux系统中判断磁盘类型十分有效,仅适用于物理磁盘,对RAID或虚拟磁盘可能不适用。通过这些方法,便能在Linux系统中准确判断出磁盘是机械硬盘还是固态硬盘。