※磁盘管理
计算机是由五大组成部件:输入设备,输出设备,存储器,运算器,控制器,其中输入设备我们称之为I/O设备,如键盘,扫描器,运算器和控制称之为cpu,存储器如,内存,硬盘,优盘。计算机其实只需要内存和cpu其实已经可以完成工作了,但是内存属于随机存储设备,断电之后就丢失数据,所以我们就需要通过其他的辅助存储设备来弥补内存的不足,这些辅存我们称之为外存。
在linux中,一切皆文件,因此linux所有设备的操作都是通过文件接口来实现的,也就是在访问设备的时候就如同访问一个文件一样,因为他们使用的都是文件系统接口。磁盘管理的操作就是通过操作磁盘来改写设备文件来实现,那么接下来就讲讲设备文件
设备文件分为两类:
块设备:block,存储单位是块,随机访问的设备,如硬盘
字符设备:char,存储单位是字符,线性的设备,如键盘
每个设备都有一个文件作为它的访问入口,此文件我们称之为设备文件,该文件关联至一个设备驱动程序,进而能够与之对应的硬件设备进行通信。在linux系统中每个设备都是在内核集中,都是靠一个设备号来进行标识的。
设备编号
用来标识设备,不同类别的设备有不同的设备号,同一类别的设备有不同的设备或多个设备,因此就有主设备号和次设备号。
主设备号:major number,表示设备类型,用于标明设备所需的驱动程序
次设备号:minor number,标识同一类型下的不同设备,特种设备的访问入口
我们可以通过ls –l /dev/*来查看设备的编号
磁盘接口类型
并口:
IDE:133MB/s
SCSI:640MB/s
串口:
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
每种接口其传输速率也是不同的
磁盘设备的设备文件命令
这些磁盘的设备文件放在/dev/目录下
IDE:/dev/hd[a-z]
第一个IDE口
主:/dev/hda 从:/dev/hdb
第二个IDE口
主:/dev/hdc 从:/dev/hdd
SCSI,SATA,SAS,USB等接口类型的硬盘都是以/dev/sd[a-z]来命名的
第一块硬盘表示为/dev/sda 第二块硬盘位:/dev/sdb依次类推
同一设备上的不同分区,1,2……
/dev/sda1第一块硬盘的第一个分区,依次类推第二个分区/dev/sda2 ,/dev/sda5第一块硬盘的第一个逻辑分区
※硬盘结构
硬盘是由盘片,轴,马达,机械臂,和磁头组成,盘片固定在旋转轴上,马达带动轴进行训传,机械臂上装有磁头,磁头是悬浮在盘片上的,用来读写盘片上的数据,机械臂可以伸缩来进行寻到
每个盘片上被分成n个同心圆,称之为磁道,是真正用来存储数据的地方,至于磁道上能存储多少数据,取决硬盘制造商的工艺。
现在的硬盘都是双面读写的,所谓双面是一个盘片上的上下两面均可读写;每个盘面上相同位置都会有一个相同的编号,所有相同编号的磁道称之为柱面。磁盘上的每个磁道被等分成若干个弧段,这些弧段我们称之为磁盘的扇区。每个扇区的大小为512个字节
为什么要分区?
1. 优化I/O性能
2. 实现磁盘空间配额限制
3. 提高修复速度
4. 隔离系统和程序
5. 安装多个OS
※分区
根据硬盘的结构分析,所有的磁头都是一起同时运动的,如果要读写一个文件数据的时候,只是在一个盘面上进行操作要比同时在其他所有盘面上操作花费的时间要长,另外根据物理运动原理,外侧磁道的读写速度要比内侧磁道的读写速度快很多,这是因为单位时间内磁头在盘面上滑过的距离要长,因此磁盘的分区是根据柱面来划分的。
每个盘面上一个柱面只能属于一个分区,而且由外向内多个柱面组合成一个分区来使用,因此越靠外的柱面其读写速率越高,这也正是越靠近外侧的分区其读写速度越快的原因。在硬盘上有一个叫做0磁道0扇区是被预留出来的,它不属于任何分区,这个扇区称之为MBR(Master Boot Record),严格来说它是用来存储MBR的一段空间
※MBR
该扇区的大写为512bytes,专门用来存储MBR(主引导记录)MBR又被分为三部分:
446bytes:前446个字节存储的是引导加载器(boot loader)
64bytes:存储分区表,有多少个分区,每个分区从哪里开始到哪里结束,其中每16bytes标识一个分区,因此,一块硬盘最多只能有4个主分区。
4个主分区:3个主分区+1扩展分区(n个逻辑分区)
2bytes:前面信息的有效标识,用4个十六进制数来表示55AA,表示前面510bytes是有效的。
MBR分区结构
GPT分区
GPT:GUID patition table 支持128个主分区,使用64位,支持8Z(512Byte/block)64Z(4096Byte/block),使用128位UUID表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位,只有支持UEFI(同意扩展固件接口)硬件支持GPT
※管理分区
列出块设备
blkid
/dev/sda1: UUID="ff619e21-e6f7-4e9e-aff1-bbe13123764e" TYPE="ext4"
创建分区使用:
fdisk创建MBR分区,也支持GPT,最多只能管理15分区
gdisk创建GPT分区
GNU parted高级分区操作(创建、复制、调整大小等等)
partprobe重新设置内存中的内核分区表版本
磁盘分区管理工具
fdisk parted sfdisk
查看分区情况
fdisk –l /dev/device
创建分区 /dev/device
fdisk创建分区是一个交互式界面,有许多子命令
p显示分区列表
t更改分区类型
n创建新分区
d删除分区
w保存并退出
q不保存退出
l列出所有的系统类型
查看内核是否已经识别新分区:cat /proc/partitions
对于已经处于使用状态的磁盘来讲,新建分区后需要让内核重读其分区表
centos5之前
partprobe /dev/device
centos6、7
新增分区
partx -a /dev/device
kpartx -af /dev/device
删除分区:
partx –d –n M:N /dev/device
partx –d nr N-M /dev/device
parted命令
parted命令有两种运行模式:命令模式和交互模式,与fdisk的交互模式不同,在parted的交互模式下执行命令,一旦执行回车确认,命令就马上执行,对磁盘的更改就理科生效。
parted命令的常用格式
parted [选项] <硬盘设备名> 交互模式,在该模式下输入parted的子命令对其指定的硬盘进行分区操作。quit命令用于退出交互模式
parted [options] [device [command [options…]…]]命令模式,直接在命令行对指定的硬盘进行
※分区操作
-h –help 显示帮助信息
-I –interactive 在必要时提示用户
-l –list 显示所有磁盘的分区表
-s –script 从不提示用户
-v –version 显示版本
※文件系统
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。
Linux文件系统
ext2:EXT2第二代扩展文件系统(英语:second extended filesystem,缩写为 ext2),是LINUX内核所用的文件系统。它开始由Rémy Card设计,用以代替ext,于1993年1月加入linux核心支持之中。ext2 的经典实现为LINUX内核中的ext2fs文件系统驱动,最大可支持2TB的文件系统,至linux核心2.6版时,扩展到可支持32TB。其他的实现包括GNU Hurd,Mac OS X (第3方),Darwin (第3方),BSD。ext2为数个LINUX发行版的默认文件系统,如Debian、Red Hat Linux等
ext3:EXT3是第三代扩展文件系统(英语:Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。它是很多Linux发行版的默认文件系统。Stephen Tweedie在1999年2月的内核邮件列表中,最早显示了他使用扩展的ext2,该文件系统从2.4.15版本的内核开始,合并到内核主线中。如果在文件系统尚未shutdown前就关机如(停电)时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系统的重整工作,将不一致与错误的地方修复。然而,此一重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。为了克服此问题,使用所谓“日志式文件系统 (Journal File System)” 。此类文件系统最大的特色是,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪。由于资料的写入动作包含许多的细节,像是改变文件标头资料、搜寻磁盘可写入空间、一个个写入资料区段等等,每一个细节进行到
ext4:EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本,一些新功能违背向后兼容性,新功能使Ext3代码变得更加复杂并难以维护,新加入的更改使原来十分可靠的Ext3变得不可靠。
xfs:XFS一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。XFS 特别擅长处理大文件,同时提供平滑的数据传输。XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件系统的为1.2版本,可以很好地工作在2.4核心下
btrfs: Btrfs(通常念成Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列(RAID)支持,支持子卷(Subvolumes)的概念,允许在线调整文件系统大小。
reiserfs:ReiserFS是一种新型的文件系统,它通过一种与众不同的方式—完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保持很快的搜索速度和很高的效率。
jfs:JFS( JOURNAL FILE SYSTEM),一种字节级日志文件系统,借鉴了数据库保护系统的技术,以日志的形式记录文件的变化。JFS通过记录文件结构而不是数据本身的变化来保证数据的完整性。这种方式可以确保在任何时刻都能维护数据的可访问性。
swap:Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率。
Windows:fat32,ntfs,fat16
Unix:FFS(fast),UFS(unix),JFS2
网络文件系统:NFS,CIFS
集群文件系统:GFS2,OCFS2(oracle)
分布式文件系统:ceph,moosefs,mogilefs,glusterfs,Lustre
RAW:未经处理或者未经格式化产生的文件系统
光盘文件系统:iso9660
日志型文件系统
ext3,ext4,xfs
非日志文件系统
ext2,vfat
文件系统的组成部分
内核中的模块:ext4,xfs,vfat
用户控件的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
虚拟文件系统:VFS
查看支持的文件系统:cat /proc/filesystems
创建文件系统
mkfs命令:
mkfs [option] device
mkfs即make file system的缩写
mkfs.fstype /dev/device
ext4
xfs
btrfs
vfat
mkfs –t fstype /dev/device
-L ‘label’设定卷标
mke2fs:ext系列文件系统专用管理工具
-t{ext2|ext3|ext4}:指定文件系统类型
-b{1024|2048|4096}:指定块大小
-L “label”:指定卷标
-j 相当于 –t ext3
mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3
-i #:为数据空间中每多少个字节创建一个inode;次大小应该大于block的大小,一般为块大小的2^n
-I #:inode size 大小为 128—4096
-N:为数据空间创建多少个inode
-m #:默认为5%,为管理员预留空间占总空间的百分比
-O feature[…]:启用指定特性
feature:has_journal启用日志功能 large_file文件系统能存储的最大文件数,dir_index
-O ^feature:关闭指定特性
文件系统特性有:
dir_index 在大目录下使用hash树来快速查找
extent 在一个inode快中利用程度来存储数据的位置方案
filetype 文件类型
flex_bg 允许块组来防止在存储介质上的任何位置
journal_dev 给定设备来替代普通ext2文件系统
resize_inode 调整inode的大小
sparse_super 用文件系低于超级块的副本
uninit_bg 加快文件系统的创建时间长短
has_journal 带有日志功能
large_file 文件系统支持最大的文件数
-F:强制创建文件系统
tune2fs
重新设定ext系列文件系统可调整参数的值
-l:查看指定文件系统超级快信息;super block
-L ‘label’ 修改卷标
-m #:修改预留给管理员的空间百分比
-j:将ext2的文件系统升级为ext3
-r:指定预留块数
-O:设定默认的挂载选项
-o:设定文件系统的默认挂载选项
这里的文件系统特征跟mke2fs相同
-U:UUID,修改UUID号
dumpe2fs
-h:查看超级快信息,分区用分组管理
文件系统标签
执行设备的另一种方法
与设备无关
blkid:块设备属性信息查看
blki [option]….[device]
-U UUID:根据指定的UUID来查找对应的设备,当我只知道uuid时可以使用此命令来查询设备的信息
-L LABEL:根据指定的LABEL来查找对应的设备,对于卷标来说使用卷标也可以查询设备名
e2label:管理ext系列文件系统的label卷标
e2label device 查看设备的卷标
e2label device label
findfs:查找分区,次命令的作用是用来查看卷标,或者更改卷标,有时候在脚本当红运用到此功能
findfs [options] label=“label”
findfs [option] UUID=”uuid”
文件系统检测和修复
因进程以外终止或系统奔溃等情况导入写入等操作非正常终止时,可能会导致文件系统损坏,此时应该修复文件系统
注意,需要离线修复,也就是卸载文件系统
fsck :File System Check
fsck.fstype
fsck –t fstype
-a:自动修复错误
-r:交互式修复错误
注意:fstype一定要与分区上已有文件系统类型相同
e2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes
-f:强制修复
※超级块
超级块的作用是存储文件系统的大小,有多少使用和没有使用的数量,以及他们各自的总数和其他诸如此类的信息。要使用一个分区来进行数据访问,那么第一个要访问的就是超级块,所以如果超级快坏了,那磁盘基本没救了。
超级快占用第1号物理块,是文件系统的控制块,超级块包括,文件系统的大小,空闲块数,空闲块索引,空闲inode节点数目,空闲inode表数,封锁标记。超级块是系统为文件分配存储空间,回收存储空间的依据。
mount挂载
挂载:将新的文件系统关联至当前根文件系统
卸载:将某文件系统与当前根文件系统的关联移除
挂载点有如下要求:
此目录没有被其他进程使用
目录的事先存在
目录的原有文件将会暂时隐藏
挂载完成后,要通过挂载点访问对应文件系统上的文件
挂载方法:mount device mount_point
mount
查看/etc/mtab文件显示当前已挂载的所有设备
伪文件系统名称:proc,sysfs,devtmpfs,configfs
常用选项
-t fstype:指定要挂载的设备上的文件系统类型,不适用此选项时,mount命令会调用blkid命令获取对应文件系统的类型
-r:readonly,只读挂载
-w:read and write,读写挂载
-n:不更新/etc/mtab,默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件中,使用-n选项意味着挂载设备时,不会把信息写入此文件
-a:表示挂载/etc/fstab文件中定义的所有文件系统
–U ‘UUID’ mount_point 通过uuid的方式来挂载文件系统
–L ‘label’ mount_point 通过卷标的方式来挂载文件系统
-B, –bind:绑定目录到另一个目录上,当我把/boot目录又一次挂载到/media目录下时,/media目录下的内容和/boot下的内容完全一致
查看内核追踪到的已挂载的所有设备:
cat /proc/mounts
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式,数据写操作先于内存完成,而后根据某种策略同步至持久设备中
sync:同步模式,内存更改时,同时写磁盘
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载,是否支持-a选项
exec/noexec:是否支持将文件系统上运行应用程序
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:不否支持suid和sgid权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载
acl:启用此文件系统上的acl功能,默认不支持(centos6)
Defaults:相当于rw, suid, dev, exec, auto, nouser, async
卸载命令
查看挂载情况
findmnt mount_point
查看正在访问指定文件系统的进程
lsof mount_point
fuser –v mount_point
终止所有正在访问指定的文件系统的进程
fuser –km mount_point
卸载
umount device
umount mount_point
注意:必须挂载点设备没有进程使用才能卸载
挂载点和/etc/fstab
配置文件系统体系
被mount、fsck和其他程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a 命令挂载/etc/fstab中的所有文件系统
文件挂载配置文件
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
要挂载的设备或伪文件系统:
设备、label(label=“ ”)、UUID(UUID=“ ”)、伪文件系统名称(proc,sysfs)
挂载选项:defaults
转储频率:
0:不做备份
1:每天转储
2:每隔一天转储
自检次序:
0:不自检
1:首先自检;一般只有rootfs采用1
处理交换文件和分区
交换分区是系统RAM的补充
基本设备包括:
创建交换分区或者文件
使用mkswap写入特殊签名
在/etc/fstab文件中添加适当的条目
使用swapon –a激活交换空间
启用swap
swapon [option]… [device]
-a:激活所有的交换分区
-p: priority指定优先级
/etc/fstab:pri=value
禁用:swapoff [option]… [device]
需要注意的是,在分区时要将文件系统的类型调成82,然后不需要格式化,直接使用mkswap命令创建swap
swap的优先级
用户可以给某个swap指定一个0到32767的优先级
如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一。
先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(正数)永远高于核心缺省指定的优先级(负数)
优化性能:分布存放,高性能磁盘存放。
移动介质
挂载意味着使外来的文件系统看起来如同是主目录的一部分
访问前、介质必须被挂载
摘除时,介质必须被卸载
按照模式设置,非根用户只能挂载某些设备(光盘、DVD、软盘、USB等等)
挂载点通常在/media或/mnt下
使用光盘
在图形环境下自动启动挂载/run/media/user/label
否则就必须被手工挂载
mount /dev/cdrom /mnt
eject命令卸载或弹出磁盘
创建ISO文件
cp /dev/cdrom /root/centos7.iso
mkisofs –r –o /root/etc.iso /etc
刻录光盘
wodim -v -eject centos.iso
挂载USB介质
被内核探测为scsi设备
/dev/sdax/ /dev/sdbx 或类似的设备文件
在图形环境自动挂载
图标在计算机窗口中创建
挂载在/run/media/user/label
手动挂载
/mout /dev/sdb1 /mnt
常用工具
内存使用状态:
free [option]
-m:以MB为单位
-g:以GB为单位
文件系统空间占用等信息的查看工具:
df [option]…[file]…
-H 以1000为单位
-T:文件系统类型
-h:human-reable,以人类易读的方式显示
-i:inodes instead of blocks
-P:以posix兼容的个数输出
查看某目录总体空间占用状态:
du [option]….DIR
-h:human-readble
-s:summary
工具dd
dd命令:convert and copy a file
用法:
dd if=/path/from/src of=/path/to/dest
bs=#:block size,复制单元大小
count=#:复制多少个bs
of=file 写到所命名的文件而不是到标准输出
if=file 从命令文件读取而不是从标准输入
bs=size 指定块大小
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 只拷贝n个记录
conv=conversion[,conversion…] 用指定的参数转换文件。
转换参数:
ascii 转换EBCDIC 为ASCII
ebcdic 转换ASCII 为EBCDIC
block 转换为长度为cbs 的记录,不足部分用空格填充。
unblock 替代cbs长度的每一行尾的空格为新行
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
swab 交换输入的每对字节。
noerror 出错时不停止
notrunc 不截短输出文件。
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
·
拷贝磁盘
dd if=/dev/sda of=/dev/sdb
备份mbr
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
sfdisk –d /dev/sda >/tmp/mbr
破坏mbr中的bootloader
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
备份:
dd if=/dev/sda of=/dev/sdd
将本地的/dev/sda整盘备份到/dev/sdd
dd if=/dev/sdd of=/path/to/somofile
将/dev/sda全盘数据备份到指定路径的文件
dd if=/dev/sda | gzip >/path/to/image.gz
备份/dev/sda全盘数据,并利用gzip工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/file of=/dev/sda
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sda
将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小
测试硬盘读写速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度
1、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/testdir目录,且默认有acl挂载选项
fdisk /dev/sda –>n–>p—>回车–>+2G—>w
partx -a /dev/sda
mke2fs -b 2048 -m 1 -t ext4 -L "TEST" /dev/sda3
mkdir /testdir
vim /etc/fstab加入如下行
UUID="79602101-81b7-40f3-b792-c4386be0cf79" /testdir ext4 defaults,acl 0 0
mount -a
2、写一个脚本,完成如下功能:
(1) 列出当前系统识别到的所有磁盘设备;
(2) 如磁盘数量为1,则显示其空间使用信息;
否则,则显示最后一个磁盘上的空间使用信息;
#!/bin/bash
#
Diskcount=`fdisk -l |grep "^D.*/dev/sd[a-z].*"|wc -l`
Disk=`fdisk -l |grep "^D.*/dev/sd[a-z].*"|cut -d ' ' -f2|cut -d : -f1`
if [ $Diskcount -eq 1 ] ;then
fdisk -l $Disk
else
fdisk -l `fdisk -l |grep "^D.*/dev/sd[a-z].*"|cut -d ' ' -f2|cut -d : -f1|tail -1 `
fi
原创文章,作者:fszxxxks,如若转载,请注明出处:http://www.178linux.com/40110
评论列表(1条)
文章结构清晰,总结的内容完整,有理论有实践,通过具体操作对各项命令进行了实践。磁盘管理是作为系统管理员必备的基础技能,需要熟练掌握。