Linux运维之磁盘管理

磁盘管理

计算机是由五大组成部件:输入设备,输出设备,存储器,运算器,控制器,其中输入设备我们称之为I/O设备,如键盘,扫描器,运算器和控制称之为cpu,存储器如,内存,硬盘,优盘。计算机其实只需要内存和cpu其实已经可以完成工作了,但是内存属于随机存储设备,断电之后就丢失数据,所以我们就需要通过其他的辅助存储设备来弥补内存的不足,这些辅存我们称之为外存。

linux中,一切皆文件,因此linux所有设备的操作都是通过文件接口来实现的,也就是在访问设备的时候就如同访问一个文件一样,因为他们使用的都是文件系统接口。磁盘管理的操作就是通过操作磁盘来改写设备文件来实现,那么接下来就讲讲设备文件

设备文件分为两类:

块设备:block,存储单位是块,随机访问的设备,如硬盘

字符设备:char,存储单位是字符,线性的设备,如键盘

每个设备都有一个文件作为它的访问入口,此文件我们称之为设备文件,该文件关联至一个设备驱动程序,进而能够与之对应的硬件设备进行通信。在linux系统中每个设备都是在内核集中,都是靠一个设备号来进行标识的。

设备编号

用来标识设备,不同类别的设备有不同的设备号,同一类别的设备有不同的设备或多个设备,因此就有主设备号和次设备号。

主设备号:major number,表示设备类型,用于标明设备所需的驱动程序

次设备号:minor number标识同一类型下的不同设备,特种设备的访问入口

我们可以通过ls –l  /dev/*来查看设备的编号

1.jpg

 

磁盘接口类型

并口:

         IDE:133MB/s

         SCSI:640MB/s

串口:

         SATA6Gbps

         SAS:6Gbps

         USB:480MB/s

每种接口其传输速率也是不同的

     2.jpg

磁盘设备的设备文件命令

这些磁盘的设备文件放在/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个字节

     3.jpg

    6.jpg

为什么要分区?

1.         优化I/O性能

2.         实现磁盘空间配额限制

3.         提高修复速度

4.         隔离系统和程序

5.         安装多个OS

 

※分区

根据硬盘的结构分析,所有的磁头都是一起同时运动的,如果要读写一个文件数据的时候,只是在一个盘面上进行操作要比同时在其他所有盘面上操作花费的时间要长,另外根据物理运动原理,外侧磁道的读写速度要比内侧磁道的读写速度快很多,这是因为单位时间内磁头在盘面上滑过的距离要长,因此磁盘的分区是根据柱面来划分的。

每个盘面上一个柱面只能属于一个分区,而且由外向内多个柱面组合成一个分区来使用,因此越靠外的柱面其读写速率越高,这也正是越靠近外侧的分区其读写速度越快的原因。在硬盘上有一个叫做0磁道0扇区是被预留出来的,它不属于任何分区,这个扇区称之为MBRMaster Boot Record),严格来说它是用来存储MBR的一段空间

 

MBR

该扇区的大写为512bytes,专门用来存储MBR(主引导记录)MBR又被分为三部分:

    446bytes:前446个字节存储的是引导加载器boot loader

    64bytes:存储分区表,有多少个分区,每个分区从哪里开始到哪里结束,其中每16bytes标识一个分区,因此,一块硬盘最多只能有4个主分区

    4个主分区:3个主分区+1扩展分区(n个逻辑分区)

    2bytes:前面信息的有效标识,用4个十六进制数来表示55AA,表示前面510bytes是有效的。

 

MBR分区结构

     7.jpg

 

GPT分区

GPT:GUID patition table 支持128个主分区,使用64位,支持8Z512Byte/block64Z4096Byte/block,使用128UUID表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位,只有支持UEFI(同意扩展固件接口)硬件支持GPT

8.jpg

 

※管理分区

列出块设备

     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列出所有的系统类型

QQ截图20160825152104.jpg

查看内核是否已经识别新分区:cat /proc/partitions

对于已经处于使用状态的磁盘来讲,新建分区后需要让内核重读其分区表


 centos5之前

 partprobe  /dev/device 

 centos67   

新增分区

 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 显示版本

parted.jpg

 

 

 ※文件系统

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。

从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。

Linux文件系统

ext2EXT2第二代扩展文件系统(英语:second extended filesystem,缩写为 ext2),是LINUX内核所用的文件系统。它开始由Rémy Card设计,用以代替ext,于19931月加入linux核心支持之中。ext2 的经典实现为LINUX内核中的ext2fs文件系统驱动,最大可支持2TB的文件系统,至linux核心2.6版时,扩展到可支持32TB。其他的实现包括GNU HurdMac OS X (3)Darwin (3)BSDext2为数个LINUX发行版的默认文件系统,如DebianRed Hat Linux

ext3EXT3是第三代扩展文件系统(英语Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。它是很多Linux发行版的默认文件系统Stephen Tweedie19992月的内核邮件列表中,最早显示了他使用扩展的ext2,该文件系统从2.4.15版本的内核开始,合并到内核主线中。如果在文件系统尚未shutdown前就关机如(停电)时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系统的重整工作,将不一致与错误的地方修复。然而,此一重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。为了克服此问题,使用所谓日志式文件系统 Journal File System。此类文件系统最大的特色是,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪。由于资料的写入动作包含许多的细节,像是改变文件标头资料、搜寻磁盘可写入空间、一个个写入资料区段等等,每一个细节进行到

ext4EXT4是第四代扩展文件系统(英语Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本,一些新功能违背向后兼容性,新功能使Ext3代码变得更加复杂并难以维护,新加入的更改使原来十分可靠的Ext3变得不可靠。

xfs:XFS一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。2000年5月,Silicon GraphicsGNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。XFS 特别擅长处理大文件,同时提供平滑的数据传输XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件系统的为1.2版本,可以很好地工作在2.4核心下

btrfs: Btrfs(通常念成Butter FS),由Oracle2007年宣布并进行中的COW(copy-on-write)文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列RAID)支持,支持子卷(Subvolumes)的概念,允许在线调整文件系统大小。

reiserfsReiserFS是一种新型的文件系统,它通过一种与众不同的方式完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保持很快的搜索速度和很高的效率。

jfsJFS( JOURNAL FILE SYSTEM),一种字节级日志文件系统,借鉴了数据库保护系统的技术,以日志的形式记录文件的变化。JFS通过记录文件结构而不是数据本身的变化来保证数据的完整性。这种方式可以确保在任何时刻都能维护数据的可访问性。

swapLinuxSwap(即:交换分区),类似于Windows虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率。

Windowsfat32ntfsfat16

UnixFFSfast),UFS(unix)JFS2

网络文件系统:NFS,CIFS

集群文件系统:GFS2OCFS2oracle

分布式文件系统:cephmoosefsmogilefsglusterfsLustre

RAW:未经处理或者未经格式化产生的文件系统

光盘文件系统:iso9660

 

日志型文件系统

ext3ext4,xfs

非日志文件系统

ext2vfat

文件系统的组成部分

内核中的模块:ext4xfsvfat

用户控件的管理工具:mkfs.ext4mkfs.xfsmkfs.vfat

 

虚拟文件系统:VFS

查看支持的文件系统:cat /proc/filesystems

 

创建文件系统

mkfs命令:

mkfs [option]  device

mkfsmake 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:强制创建文件系统

   12.jpg

11.png


 

tune2fs

重新设定ext系列文件系统可调整参数的值

-l:查看指定文件系统超级快信息;super block

-L ‘label’ 修改卷标

-m #:修改预留给管理员的空间百分比

-j:将ext2的文件系统升级为ext3

-r:指定预留块数

-O:设定默认的挂载选项

-o:设定文件系统的默认挂载选项

      这里的文件系统特征跟mke2fs相同

-UUUID,修改UUID

       13.jpg

 

dumpe2fs

-h:查看超级快信息,分区用分组管理

     24.jpg

文件系统标签

执行设备的另一种方法

与设备无关

blkid:块设备属性信息查看

blki [option]….[device]

-U UUID:根据指定的UUID来查找对应的设备,当我只知道uuid时可以使用此命令来查询设备的信息

-L LABEL:根据指定的LABEL来查找对应的设备,对于卷标来说使用卷标也可以查询设备名

 14.jpg

e2label:管理ext系列文件系统的label卷标

e2label device  查看设备的卷标

e2label device  label

15.jpg 

findfs:查找分区,次命令的作用是用来查看卷标,或者更改卷标,有时候在脚本当红运用到此功能

findfs [options] label=label

findfs [option] UUID=”uuid”

     1.jpg


文件系统检测和修复

因进程以外终止或系统奔溃等情况导入写入等操作非正常终止时,可能会导致文件系统损坏,此时应该修复文件系统

注意,需要离线修复,也就是卸载文件系统

fsck File System Check

fsck.fstype

fsck –t fstype

-a:自动修复错误

-r:交互式修复错误

注意:fstype一定要与分区上已有文件系统类型相同

 

e2fsckext系列文件专用的检测修复工具

-y:自动回答为yes

-f:强制修复

       17.jpg

 

超级块

超级块的作用是存储文件系统的大小,有多少使用和没有使用的数量,以及他们各自的总数和其他诸如此类的信息。要使用一个分区来进行数据访问,那么第一个要访问的就是超级块,所以如果超级快坏了,那磁盘基本没救了。

超级快占用第1号物理块,是文件系统的控制块,超级块包括,文件系统的大小,空闲块数,空闲块索引,空闲inode节点数目,空闲inode表数,封锁标记。超级块是系统为文件分配存储空间,回收存储空间的依据。

 

mount挂载

挂载:将新的文件系统关联至当前根文件系统

卸载:将某文件系统与当前根文件系统的关联移除

  挂载点有如下要求:

此目录没有被其他进程使用

目录的事先存在

目录的原有文件将会暂时隐藏

挂载完成后,要通过挂载点访问对应文件系统上的文件

挂载方法:mount device mount_point

mount

查看/etc/mtab文件显示当前已挂载的所有设备

伪文件系统名称:proc,sysfs,devtmpfs,configfs

18.jpg

 

常用选项

-t fstype:指定要挂载的设备上的文件系统类型,不适用此选项时,mount命令会调用blkid命令获取对应文件系统的类型

-rreadonly,只读挂载

-wread 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

20.jpg


     

    -o options(挂载文件系统的选项),多个选项使用逗号分隔

async:异步模式,数据写操作先于内存完成,而后根据某种策略同步至持久设备中

sync:同步模式,内存更改时,同时写磁盘

atime/noatime:包含目录和文件

diratime/nodiratime:目录的访问时间戳

auto/noauto:是否支持自动挂载,是否支持-a选项

exec/noexec:是否支持将文件系统上运行应用程序

dev/nodev:是否支持在此文件系统上使用设备文件

suid/nosuid:不否支持suidsgid权限

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

注意:必须挂载点设备没有进程使用才能卸载

     21.jpg

挂载点和/etc/fstab

配置文件系统体系

mountfsck和其他程序使用

系统重启时保留文件系统体系

可以在设备栏使用文件系统卷标

使用mount  -a 命令挂载/etc/fstab中的所有文件系统

文件挂载配置文件

22.jpg

/dev/mapper/VolGroup-lv_root    /        ext4        defaults      1           1

要挂载的设备或伪文件系统   挂载点  文件系统类型  挂载选项   转储频率   自检次序

要挂载的设备或伪文件系统:

设备、labellabel= ”)、UUIDUUID= ”)、伪文件系统名称(procsysfs

挂载选项:defaults

转储频率:

0:不做备份

1:每天转储

2:每隔一天转储

 

自检次序:

0:不自检

1:首先自检;一般只有rootfs采用1

 

处理交换文件和分区

交换分区是系统RAM的补充

基本设备包括:

创建交换分区或者文件

使用mkswap写入特殊签名

/etc/fstab文件中添加适当的条目

使用swapon –a激活交换空间

启用swap

swapon [option]… [device]

-a:激活所有的交换分区

-p priority指定优先级

/etc/fstabpri=value

禁用:swapoff [option]… [device]

     需要注意的是,在分区时要将文件系统的类型调成82,然后不需要格式化,直接使用mkswap命令创建swap

    23.jpg

swap的优先级

用户可以给某个swap指定一个032767的优先级

如果用户没有指定,那么核心会自动给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:文件系统类型

-hhuman-reable,以人类易读的方式显示

-iinodes  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 从开头忽略blocksibs大小的块

seek=blocks 从开头忽略blocksobs大小的块

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

  1.jpg

  2.jpg

 4.jpg

 6.jpg

 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

5.jpg




 

原创文章,作者:fszxxxks,如若转载,请注明出处:http://www.178linux.com/40110

(1)
fszxxxksfszxxxks
上一篇 2016-08-27
下一篇 2016-08-27

相关推荐

  • 二叉树迭代器算法

    二叉树(Binary Tree)的前序、中序和后续遍历是算法和数据结构中的基本问题,基于递归的二叉树遍历算法更是递归的经典应用。 假设二叉树结点定义如下: // C++ struct Node {     int value;     No…

    Linux干货 2016-08-15
  • vim文本编辑器

    vi简介 vi:Visual Interface,是一种功能强大的文本编辑器,工作在字符模式下,它可执行输出、输出、查找、替换、块等众多文本操作,不需要图形界面,因此执行起来效率会非常高,主要用来编辑纯文本文件,常见的编码有,ASCII,Unicode等等 文本编辑器的种类:     行编辑器:逐行来对文本进行处理的工…

    Linux干货 2016-08-15
  • awk基本用法

    一、awk介绍     awk、sed&grep都可以匹配文本,但sed和awk可以对文本进行编辑,grep则不具有此功能;sed是非交互式的流编辑器,而awk则是一门模式匹配的编程语言。awk主要用于处理匹配的文本,同时awk还支持编程语言的一些特性,如变量、函数、循环语句等。  &nbs…

    Linux干货 2016-09-21
  • linux命令格式和常用命令

    Linxu命令使用格式 ~]#COMMAND OPTIONS ARGUMENTS CMMMAND:发起一命令:请求内核将某个二进制程序运行为一个进程; OPTIONS:指定命令的运行特性; 短选项:-C, 例如-l, -d 注意:有些命令的选项没有-; 如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld 长选项:–word, 例如…

    Linux干货 2018-03-04
  • N25-第五周

    – 1     显示/boot/grub/grub.conf中以至少一个空白字符开头的行;     grep "^[[:space:]]\+" /boot/grub/grub.conf2 显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的…

    Linux干货 2017-01-02
  • lamp简介

    lamp 构建一个有着动态服务器端技术的网站 LAMP基础 1)开源领域LAMP组成: L:Linux;A:apache (httpd);M:mysql, mariadb;P:php, perl, python httpd:接收用户的web请求;静态资源则直接响应;动态资源为php脚本交由php来运行; php:运行p…

    Linux干货 2016-11-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-29 15:56

    文章结构清晰,总结的内容完整,有理论有实践,通过具体操作对各项命令进行了实践。磁盘管理是作为系统管理员必备的基础技能,需要熟练掌握。