[TOC]
磁盘那些事儿
相关命令:lsblk,fdisk,du,df,lspci,mount
1、lspci
查看Linux主机的硬件配备 选项与参数: -v :显示更多的 PCI 接口装置的详细信息 -vv :比 -v 还要更详细的信息 -n :直接观察 PCI 的 ID 而不是厂商名称
2、lsblk
默认是树形方式显示 ,查看系统的磁盘 lsblk -lp 详细信息 lsblk -dp 只显示磁盘
3、df -h
基本步骤: 1确认内核版本和系统环境支持ext4 (推荐升至2.6.28以上,lsmod |grep ext4) 2卸载要升级的分区(在线卸不掉则需要进单用户) 3 tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize来给分区加入ext4的特性 4 e2fsck -fDC0 /dev/sdb1 –y修复分区错误 5修改fstab中分区格式为ext4,reboot
关键点: 1tune2fs版本要高于1.41 否则不支持ext4的特性 2官方推荐使用2.6.28以上内核才稳定支持ext4 3对在使用的分区如var,一定要先卸载再操作,并且重启之前一定要挨个执行完tune2fs,e2fsck,和vi /boot/f000000stab的修改,再重启,否则挂载就会出问题
网络资料: 一、测试场景 操作系统:CentOS 5.6 x86 64bit(内核2.6.18) 文件系统:ext3 硬盘:2块(sda1、sdb1),sdb1的挂载点为/Android,专门用来存储编译文件,在编译时报错。
二、升级前状态 查看系统内核版本: # uname -r 2.6.18-238.el5 查看文件系统的情况: # df -T 文件系统 类型 1K-块 已用 可用 已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 ext3 13077624 3342968 9059636 27% / /dev/sda1 ext3 101086 15876 79991 17% /boot tmpfs tmpfs 257452 0 257452 0% /dev/shm /dev/sdb1 ext3 8254240 149624 7685324 2% /android 查看ext4特征是否激活: # tune2fs -l /dev/sdb1 | grep extent 执行上述命令后无任何信息返回,说明/dev/sdb1的ext4特征没有激活,唯一的解决办法就是升级文件系统到ext4了。
三、软件下载及安装 e2fsprogs软件包下载页面:http://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/
接下来是源码编译安装过程: # wget http://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/e2fsprogs-1.41.14.tar.gz # tar -zxvf e2fsprogs-1.41.14.tar.gz # cd e2fsprogs-1.41.14 # ./configure # make && make install 安装完毕后暂时不需要重启系统。第一次安装完毕时我就重启系统了,结果系统竟然崩溃了,因此e2fsprogs软件包安装完毕后不要立即重启服务器。
4、Linux上怎么判断固态硬盘和机械硬盘
4-1、方法一:cat /sys/block/{fs_name}/queue/rotational
是你的硬盘设备名称,例如 vda、vdb、sda 等等。 返回结果: 0 固态硬盘 1 机械硬盘
[root@ubuntu0006:/media] #df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 3.9G 0 3.9G 0% /dev
tmpfs 799M 9.5M 789M 2% /run
/dev/vda1 77G 54G 20G 74% /
tmpfs 3.9G 172K 3.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 799M 4.0K 799M 1% /run/user/108
tmpfs 799M 36K 799M 1% /run/user/0
[root@ubuntu0006:/media] #cat /sys/block/vd
vda/ vdb/
[root@ubuntu0006:/media] #cat /sys/block/vda/
alignment_offset dev holders/ power/ ro stat vda1/
bdi/ device/ inflight queue/ serial subsystem/ vda2/
cache_type discard_alignment integrity/ range size trace/ vda5/
capability ext_range mq/ removable slaves/ uevent
[root@ubuntu0006:/media] #cat /sys/block/vda/queue/rotational
1
以根目录为例,注意是vda1,但是需要选择vda目录,而不是vda目录下的vda1目录。
4-2、方法二:查看所有磁盘
grep ^ /sys/block/*/queue/rotational
[root@ubuntu0006:/media] #grep ^ /sys/block/*/queue/rotational
/sys/block/loop0/queue/rotational:1
/sys/block/loop1/queue/rotational:1
/sys/block/loop2/queue/rotational:1
/sys/block/loop3/queue/rotational:1
/sys/block/loop4/queue/rotational:1
/sys/block/loop5/queue/rotational:1
/sys/block/loop6/queue/rotational:1
/sys/block/loop7/queue/rotational:1
/sys/block/vda/queue/rotational:1
/sys/block/vdb/queue/rotational:1
4-3、方法三:lsblk命令也可以判断磁盘类型
其中 ROTA 表示 rotational device,1 代表是机械硬盘,0 则就是 ssd 了。
[root@ubuntu0006:/media] #lsblk -d -o name,rota
NAME ROTA
vda 1
vdb 1
4-4、方法四:使用第三方工具 smartctl
apt install smartmontools安装工具 smartctl -a /dev/{fs_name} Rotation Rate: Solid State Device出现这种表示为ssd
[root@ubuntu0006:/media] #smartctl -a /dev/vda1
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-210-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
/dev/vda1: Unable to detect device type
Please specify device type with the -d option.
Use smartctl -h to get a usage summary
[root@ubuntu0006:/media] #smartctl -i /dev/vda1
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-210-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
/dev/vda1: Unable to detect device type
Please specify device type with the -d option.
Use smartctl -h to get a usage summary
不清楚怎么解决,百度和必应未搜索到结果。