文件系统格式化,挂载目录及写入数据
硬盘 分区 ..........格式化..................挂载目录-----------写入数据。
毛坯 分主卧、次卧、厨房、客厅 ............ 装地板、中美欧式风格装修..........放一些生活用具,窗户,门,锅等...........尽情使用房子的功能了,睡觉吃饭等等。
文件系统直接的调用关系如下:
文件系统类型如下:
日志型文件系统:防丢失以恢复
文件格式化之后,需要进行挂载,打开一个出入口
mount挂载实例:
可以看文件:
Linux基础之硬盘管理(上)
查看硬件信息
df -h命令
free命令:内存使用情况
uname:查看内核信息
cat /proc/cpuinfo:打印CPU信息
cat /proc/meminfo:打印内存信息
fdisk -l:查看磁盘分区命令
磁盘分区
磁盘可以分为硬盘和软盘,软盘因为存储容量低、读取速度慢、寿命短等原因,已经逐步被淘汰。目前的硬盘可以分为HDD和SSD。HDD表示传统的磁碟型机械硬盘。SSD表示固态硬盘。
HDD
由盘片、磁头、转轴、控制电机等部分组成。工作时盘片转动,磁头定位在盘片的指定位置上进行读写操作优点是容量大,寿命长,适合大容量数据写入。缺点:体积大,噪声大,不抗震,速度慢
SSD
一般使用NAND闪存制成,由于不存在机械部件,读写速度比HDD更快。稳定性,噪音,抗震性,都比传统机械硬盘表现更好。价格比传统机械硬盘高一些
SSHD
混合硬盘,是HDD和SSD的结合体,混合硬盘目前的市场不是那么大
什么是磁盘分区
目前的磁盘分区如下图,表示你的电脑中,只有一个windows操作系统磁盘分区简单的说就是使用分区编辑器,在磁盘上划分几个逻辑部分,分区是一种虚拟概念。如果我们将将磁盘一半分给windows,一半分给Linux,这时我们的硬盘就会是这样。这样,windows和Linux操作系统才可以共存
文件系统
在每个分区中,文件都是按照一定的方法被存储和组织起来的,这种方法被称为“文件系统”。用户使用文件系统来保存数据时,不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需记住这个文件所属目录和文件名。文件系统还规定了谁有权限访问这个或那个文件,现代文件系统有不少都是日志文件系统。严格的说,文件系统是一套实现了数据的存储、分级组织,访问和获取等操作的抽象数据类型。是操作系统提供的一种抽象,介于软件和磁盘硬件之间的界面。很重要的一条规则:每个分区只能有一种文件系统
Windows的文件系统
FAT16
一种有一定年代的文件系统,可以管理不大于4GB的分区
FAT32
从Windows98开始流行,是FAT16的增强版本,可以管理不大于2TB的分区
NTFS
是New Technology File System的缩写。在Windows NT操作系统中首次被使用,可以管理16Eo的分区,也就是近似160亿GB,当然,这个是理论值。比起FAT文件系统,NTFS在系统故障或者突然断电时,可以更容易的恢复数据,因为它是日志型文件系统。
二、Linux的文件系统
ext2
ext是英语Extended前三个字母,是“扩展的”意思,由法国程序员Remy Card设计,也是ext(第一代扩展文件系统)的设计者。ext3
ext3和ext2很接近,不过ext3是日志型文件系统,所以比起ext2(不是日志型),ext3在故障时可以恢复数据。ext3和ext2高度兼容。ext4
ext3的演进,扩大了磁盘分区的大小,支持的存储容量高达1EB(=1073741824GB)能够批量的分配block块,极大地提高了读写效率。xfs
一种高性能的日志文件系统,是CentOS7开始的版本的默认文件管理系统。它的优势在发生意外宕机后尤其明显。可以快速恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且最大可支持的存储容量为18EB。
选择什么文件系统呢
选择ext4或xfs作为Linux的文件系统
物理设备的命令规则
/dev目录
dev是device的缩写,表示“设备”。/dev目录的子目录,每一个对应一个外设。比如代表光盘驱动器的文件就会出现在这个目录下面如果我们执行以下命令ls -l /dev/sd?
ls -l /dev/sd??
可能你会问sda表示的是什么,具体见下面的这张表
物理设备的命令规则
硬盘的磁盘分区的命名举例
hda是指IDE接口的硬盘,hda一般指第一块硬盘(磁盘),类似的有hdb,hdc等
sda是指SATA或SCSI接口的硬盘
sda一般指第一块硬盘(磁盘)
类似的有sdb,sdc等
系统是采用a-p来代表16块不同的硬盘(默认从a开始分配)
sda1是指第一块硬盘的第一个分区
sda2就是第一块硬盘的第二个分区
sdb1就是第二块硬盘的第一个分区
现在的内核会把硬盘,移动硬盘,u盘之类的识别为sdX的形式
主分区、扩展分区和逻辑分区
也称为主磁盘分区,和扩展分区,逻辑分区一样。都是一种分区类型。主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑磁盘,但主分区是直接在硬盘上划分的,逻辑分区则必须建立于扩展分区中。
主分区
早期MBR模式只能划分四个分区,现在的GPT分区至少可以划分128个主分区,未来很有可能将不存在扩展分区和逻辑分区的概念。一个硬盘的主分区包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则硬盘上必须有一个主分区。主分区或扩展分区编号从1开始,到4结束。
扩展分区
扩展分区,严格地说并不是一个实际意义的分区,仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。
逻辑分区
是硬盘上一块连续的区域,一个硬盘上最多可以有四个主分区,而扩展分区上可以划出多个逻辑驱动器,这些逻辑驱动器没有独立的引导块。逻辑分区从编号5开始。如果手动对硬盘分区,会有以下内容
Swap分区
是Linux下的虚拟内存分区,在Windows中等价的东西叫“虚拟内存”。Swap分区的作用是在物理内存使用完之后,将磁盘空间(也就是Swap分区)虚拟成内存来使用。Swap分区是一段连续的磁盘空间,并且对用户不可见。一般对Swap分区的大小和实际物理内存差不多即可。
引导分区
/boot是引导分区,也就是引导操作系统启动程序所在的分区。是一个很重要的分区,里面存放的是开机所需的文件,例如Linux内核、开机菜单和所需的配置文件等。一般几百MB即可。
根分区
根分区就是/分区,相当于Windows系统的C盘。Linux系统里,/是最上层目录。
Linux基础之硬盘管理(下)
df -h
gparted命令。
在centos中可能没有默认安装,通过yum install进行安装】【图形界面,需要用root权限,因为有页面,做实验的时候,需要在客户端进行安装和演示。
字符设备和块设备
设备文件
各种设备以文件的形式存放在/dev目录,称为设备(device)文件,应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。主设备号和从设备号
为了管理这些设备,系统为设备编了号,分为主设备号和从设备号,主设备号用来区分不同种类的设备,从设备号用来区分同一类型的多个设备。ls -l /dev
字符设备和块设备
Linux中I/O设备分为两类:字符设备和块设备,I/O是Input / Output的缩写,表示“输入/输出”。
字符设备
字符设备是指在I/O传输过程中以字符为单位进行传输的设备,键盘、打印机、串口、调制解调器、tty都是典型的字符设备,字符设备的文件属性标识是c,是character的首字母。ls -l /dev
字符设备提供连续的数据流,应用程序可以顺序读取。通常不支持随机存取,支持按字节/字符来读写数据。
ls -l /dev/tty?
/dev/zero也是一个字符设备:
ls -l /dev/zero
先看一下
ls -l /dev/null
ls -l /dev/zero也是一个字符设备,
ls -l /dev/zero
在Unix操作系统中,/dev/zero是一个特殊文件,读取它的时候,会提供无限的空字符串,即获取的是一串二进制0。
块设备
块设备将信息存储在固定大小的块中,每个块都有自己的地址,数据块大小通常在512字节到32768字节(32KB)之间。块设备的数据读取只能以块的倍数进行。块设备支持随机访问,可以在设备的任意位置读取一定长度的数据块设备的文件属性标识是b,是block的首字母,硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备。ls -l /dev/sda?
dd命令
用指定大小的块拷贝一个文件,可以在拷贝的同时进行指定的转换
dd if=/dev/sda1 of=backup
输入文件是/dev/sda1,输出文件是backup,也就相当于将sda1复制为backup
dd if=/dev/zero bs=5M count=10 of=aFile // 拷贝10块,每块大小为5M
用dd命令创建带“空洞”的文件
dd if=/dev/zero bs=5M count=10 seek=20 of=bFile
ls -hl 和 du -h 分别显示aFile和bFile的大小
aFile:两个命令执行后的大小是一样的,都是50MB
bFile:ls命令执行结果大小为150MB(20+10)*50,du命令执行结果为50MB
再谈ls和du命令的区别
ls命令统计的是文件的“逻辑”大小。du命令统计的是文件的“物理”大小,在硬盘上占据多少个block
ps:在这说一下虚拟机创建的时候,动态分配和固定大小的区别。动态分配大小就是最开始的时候不到那个值,随着系统的使用,占用的内容不断增加,最多占用大小为那个值。固定大小是一开始创建的时候,就占用那么多,里面可能存在很多“空洞”文件,但是最开始的时候,已经被占用了
echo -n 1 > 1B.txt
ls -l 1B.txt
du -h 1B.txt
四、挂载硬件设备mount和umount命令
挂载硬件设备
拿到一块新的硬盘存储设备后,也需要先分区,然后再格式化文件系统,最后才能挂载并正常使用。当然了,也可以不对硬盘进行分区,但必须进行格式化。
格式化
格式化是指对磁盘或磁盘中的分区进行初始化的一种操作,格式化的术语是format。format表示格式化,格式化会清除原有的数据,然后指定文件系统。
挂载
需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,这个关联的动作就是挂载,英语是mount
mount命令
mount命令用于挂载文件系统,命令格式为“mount 文件系统 挂载目录”,挂载是在使用硬件设备前所执行的最后一步操作。
mount命令参数
mount /dev/sda1 /backup
mkdir /backup
mount /dev/sda1 /backup
ls /backup
df -h
/etc/fstab
mount挂载文件系统,在系统重启后挂载就会失效,要永久挂载,就要用以下格式写入/etc/fstab文件
设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检
vim /etc/fstab
umount命令
用于撤销已经挂载的设备文件,命令格式:umount [挂载点/设备文件]
umount /backup // 解除挂载
ls /backup // 显示为空
五、添加硬盘设备和交换分区fdisk和mdisk命令
添加硬盘设备
添加硬盘之前,需要使用poweroff命令对系统进行关机
ls -l /dev/sd??
这个时候,我们可以看到,在sdb中还没有分区
fdisk命令
fdisk -l
fdisk命令用于管理磁盘分区
命令格式为“fdisk [磁盘名称]”
集添加、删除、转换分区等功能于一身
fdisk是一个交互式参数,其中参数如下表
fdisk /dev/sdb
格式化,指定文件系统之后,才能进行挂载和使用
ls -l /dev/sd??
mkfs命令
mkfs是make file system 的缩写,表示“制作文件系统”
mkfs命令用于格式化,指定文件系统
mkfs系列命令:mkfs.文件类型名称
mkfs.xfs /dev/sdb1
mkdir /newFS
mount /dev/sdb1 /newFS
df -h
free -m
ls -l /dev/sd??
mkswap /dev/sdb2 // 将sdb2添加到swap分区
free -m // 查看现在swap分区。发现现在并没有添加到swap分区
swapon /dev/sdb2
free -m
vim /etc/fstab
挂载swap分区是这样的,比较特殊
reboot之后再查看,发现分区都在
六、磁盘配额quota命令集
磁盘容量配额
使用磁盘容量配额来限制某位用户或某个用户组,针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。quota命令集
quota是一个磁盘容量配额服务程序包,可以限制用户的硬盘可用容量或所能创建的最大文件个数软限制:当达到软限制时会提示用户。但仍允许用户在限定的额度内继续使用硬限制:当达到软限制时会提示用户,且强制终止用户的操作默认在系统中,可能没有安装quota命令,可以使用yum install quota来安装。在终端中直接输入quota什么也没有显示,是因为存储设备默认没有开启对quota的支持,需要编辑/etc/fstab
vim /etc/fstab
在/boot分区的default后面添加,uquota,重启系统之后,使用mount命令查看分区情况
mount | grep boot
useradd tomas
chmod -Rf o+w /boot
ls -dl /boot
quota // 默认为当前用户
quota tomas // 查看用户Tomas
xfs_quota命令
针对XFS文件系统来管理quota磁盘容量配额服务而设计的命令
命令格式为"xfs_quota [参数] 配额 文件系统"
xfs_quota -x -c 'limit bsoft=4m bhard=7m isoft=5 ihard=9 tomas' /boot
限制tomas用户在/boot的使用中,硬盘使用量为软限制为4MB,硬限制为7MB,能够创建文件数量的软限制为5个,创建文件数量的硬限制为9个
xfs_quota -x -c report /boot // 查看用户的磁盘配额分配,下面数字单位是KB
通过
dd if=/dev/zero of=/boot/tomas bs=6M count=1
dd if=/dev/zero of=/boot/tomas bs=8M count=1 // Disk quota exceeded,因为8MB超过了设置的硬限制7M
edquota命令用于编辑用户的quota配额限制,命令格式为"edquota [参数] [用户]"
edquota -u tomas -g tomas
dd if=/dev/zero of=/boot/tomas bs=8M count=1 // 这个时候,可以正常,
dd if=/dev/zero of=/boot/tomas bs=11M count=1 // 这个时候,又出现错误
这篇文章是小编关于Linux基础的最后一篇文章,在更新这一系列文章的时候,赶上长春疫情,在这期间,也有各种酸甜苦辣。在接下来的文章中,小编会系统地更新基于Python的Web框架Flask的相关文章,还希望和大家在技术的路上,不忘初心,越走越远。