Loading... <h3><span style="font-family: 宋体, SimSun;font-size: 14px">一.硬盘的组成</span></h3> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 硬盘主要由圆形的盘片、机械臂和机械臂上的磁头、主轴马达组成。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 盘片上数据的存储:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 扇区为最小的物理存储单位,每个扇区为512bytes;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 扇区组成的圆称为柱面,柱面是分区的最小单位;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 第一个扇区存放硬盘的主引导记录(MBR)及分区表(partition table),其中MBR占446bytes,分区表占64bytes。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 由于分区占只有64字节,所以只能记录4条分区记录,这4条分区记录称为主分区和扩展分区,扩展分区还可以再次划分为逻辑分区,可以被格式化并记录数据的只有主分分和逻辑分区。</span></p> <h3><span style="font-family: 宋体, SimSun;font-size: 14px"></span></h3> <h3><span style="font-size: 20px;font-family: 宋体, SimSun">二. 文件系统<br /></span></h3> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 一个可被挂载的数据称为文件系统。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 文件系统将文件的权限与属性保存在inode中,一个文件占用一个inode,实际的数据保存在data block块中。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> inode会记录文件所占有用的block的号码。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 每个block只能放置一个文件的数据,而一个文件可以占用多个block。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 每个文件系统还会有一个超级块(super block)用于记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量、以及文件系统的格式与相关信息。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 可以使用命令dumpe2fs来查看super block的信息</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-45.png" title="1427763853109441.png" alt="1.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-33.png" title="1427763912961090.png" alt="2.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> inode中并不保存文件的文件名,文件名放置在目录的block中。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 根目录的inode号为2。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-60.png" title="1427765422951719.png" alt="3.png" /></p> <h3><span style="font-family: 宋体, SimSun;font-size: 14px"></span></h3> <h3><span style="font-size: 20px;font-family: 宋体, SimSun">三.文件系统相关操作<br /></span></h3> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong>1.链接文件</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 在Linux下有两种链接文件:硬链接和符号链接(软链接)。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 硬链接:不同文件指向同一个inode,所有硬链接到同一个inode的文件,它们的内容是共享的,即修改其中一个文件的内容,其它硬链接的文件内容也会更改。硬链接有以下特性:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1)只能对文件创建,不能应用于目录;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 如果对目录创建硬链接,那么对于目录下的所有文件都要创建对应的硬链接,在文件较多的情况下则会使得情况变得相当复杂,所以不充许对目录进行硬链接。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2)不能跨文件系统;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> inode号码是在文件系统中的super block中维护的,不同的文件系统不保证提供相同的inode号码,所以不同文件系统之间无法创硬链接。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 3)创建硬链接会增加被硬链接的次数;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 在文件属性中会看到链接次数被增加。 </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-48.png" title="1427792811130221.png" alt="4.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 4)增加inode引用计数;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 同一个inode被链接了新的文件,引用计数会增加。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 符号链接:类似于window中的快捷方式。符号链接文件会占用新的inode,所以被符号链接的文件移动或删除的话,符号链接文件也即失效。理解了硬链接的特性后,就不难理解符号链接的特性了:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1、可以应用于目录;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2、可以跨文件系统;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 3、不会增加被链接文件的链接次数;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 4、其大小为指定的路径所包含的字符个数;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 5、不会增加inode引用计数。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 创建链接文件</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 格式:ln [-sf] 源文件 目标文件</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -s:创建符号链接,如果不加任何参数则是创建硬链接;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -f:如果目标文件存在,就将目标文件删除后再创建;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 创建硬链接</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 创建前我们先来看下inode的占用情况,df -i可以查看文件系统的inode使用情况;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-19.png" title="1427800812107355.png" alt="12.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 创建硬链接后,两个文件的硬链接数都是2;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-52.png" title="1427794498120551.png" alt="6.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 输入内容到文件hard_link中,可以看到两个文件同时增加了大小;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-11.png" title="1427795381183488.png" alt="7.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 将link文件改名后,hard_link文件依然可以访问;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-5.png" title="1427796769245077.png" alt="12.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 再来查看一下inode占用情况,并没有发生变化。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-71.png" title="1427800540489462.png" alt="12.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 创建软链接</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 创建软链接后文件link的链接数并没有增加</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-89.png" title="1427795602316133.png" alt="8.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 访问symbol_link文件可以看到link文件的内容。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-75.png" title="1427796673314859.png" alt="11.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用ls命令的-i参数可以看到文件所占用的inode号码;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 可以看到硬链接与原文件的inode号码相同,而符号链接则使用了新的inode号码。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 下面的输出中符号链接的大小为4,其实它表示符号链接所指向的文件名的字符数,link为4个字符,所以它的大小为4。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-26.png" title="1427795700124844.png" alt="9.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 看下inode的使用情况,在上面创建硬链接时inode使用数量为125630,创建符号链接后变成了125631,可见符号链接会占用inode。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-63.png" title="1427800673882717.png" alt="13.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 将文件link改名后,符号链接已经找不到原文件而出错了。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-56.png" title="1427796547121372.png" alt="9.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-30.png" title="1427796637100686.png" alt="10.png" /></p> <p style="text-indent: 28px"><span style="font-family: 宋体, SimSun;font-size: 14px"> 另外,一个inode可以被引用多次,其有计数器;在引用次数降为0之前,不会被标记为未占用inode.</span></p> <p style="text-indent: 28px"><span style="font-family: 宋体, SimSun;font-size: 14px"> 文件被删除,inode被标记为空闲,此inode指向的磁盘地块被标记为空闲。</span></p> <p style="text-indent: 28px"><span style="font-family: 宋体, SimSun;font-size: 14px"> 如果inode被引用多次,且此次删除未使得其引用计数降低为0的话,这意味着文件未被删除,仅删除了一个访问路径。</span></p> <p style="text-indent: 28px"><span style="font-family: 宋体, SimSun;font-size: 14px"> 文件复制:创建一个新文件,是原文件中数据在新文件指向磁盘块中写一次的过程。</span></p> <p style="text-indent: 28px"><span style="font-family: 宋体, SimSun;font-size: 14px"> 文件移动:</span></p> <p style="margin-left: 28px;text-indent: 28px"><span style="font-family: 宋体, SimSun;font-size: 14px"> 在同一分区移动: 移动文件仅是改变了文件访问路径。</span></p> <p style="margin-left: 28px;text-indent: 28px"><span style="font-family: 宋体, SimSun;font-size: 14px"> 跨分区移动:在新分区创建文件,把数据复制过去,删除原分区数据。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong>2.du和df命令</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> du命令:用于显示文件和目录的容量。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -a:列出所有的文件与目录容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -s:列出整个目录的容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -h:以人类易读的方式显示;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -k:以KB显示容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -m:以MB显示容量。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 下面举例来说明: </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 显示/etc目录的容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-3.png" title="1427802031110290.png" alt="14.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 以易读方式显示;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-15.png" title="1427802091750107.png" alt="15.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 显示/etc目录中每一个文件的大小;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-54.png" title="1427802199839541.png" alt="16.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> df命令:列出文件系统的使用情况。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -a:列出所有的文件系统;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -k:以KB显示容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -m:以MB显示容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -h:以人类易读方式显示容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -H:以M=1000K替代M=1024的进位方式;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -T:显示文件系统的分区格式;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -i:显示inode数量。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 下面举例说明:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 列出所有文件系统;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-89-1.png" title="1427802453263684.png" alt="17.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 以易读方式显示容量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703155930-78.png" title="1427802523612048.png" alt="18.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 显示文件系统的格式;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/c4j31fmafgr.png" title="1427802583415086.png" alt="19.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 以易读方式显示inode数量;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/n415fbtgixn.png" title="1427802667121326.png" alt="1.png" /></p> <h3><span style="font-family: 宋体, SimSun;font-size: 14px"></span></h3> <h3><span style="font-size: 20px;font-family: 宋体, SimSun">四. 设备文件<br /></span></h3> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 在Linux中设备文件都是用文件来表示的,如下图所示:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/bxfaasndil2.png" title="1427803192125170.png" alt="1.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> b:以块为单位,随机访问的设备,比如硬盘;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> c:以字符为单位,线性设备,比如键盘。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 上图中的以逗号分隔的两个数字,分别表示主设备号和次设备号。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 主设备号:(major number)</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 标识设备类型;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 次设备号:(minor number)</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 标识同一种类型中不同设备。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 创建设备文件</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> mknod命令</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 格式:mknod -m mode 设备文件名 [bc] [Major] [Minor]</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -m mode:设置设备的权限为mode;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> b:设置块设备;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> c:设置字符设备;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> Major:主设备代码;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> Minor:次设备代码。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 例如:创建一个设备testdev,代码为10,5的字符设备,并设置权限为644;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/rtuo5bxdgq4.png" title="1427803830123822.png" alt="1.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/j5i5zc0zpvk.png" title="1427803863122015.png" alt="1.png" /></p> <h3><span style="font-family: 宋体, SimSun;font-size: 14px"></span></h3> <h3><span style="font-size: 20px;font-family: 宋体, SimSun">五.磁盘的分区操作<br /></span></h3> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong> 1.硬盘组成回顾</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 磁盘的前512Bytes存放MBR(主引导记录),其中:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 446Bytes:bootloader; </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 64Bytes:分区表,每16Bytes标记一个分区;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2Bytes:5A,MBR有效性标记。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 分区是按照柱面来划分的,一个柱面只能属于一个分区。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong> 2.查看系统上的磁盘及分区信息</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1)/proc/partitions文件</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 查看目前系统上的分区信息</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/rbyxkc3tt3i.png" title="1427804557115054.png" alt="1.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2)/proc/filesystem文件</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 查看系统支持的文件系统</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/vfqoybanao5.png" title="1427804650499919.png" alt="1.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 3)fdisk命令</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/hbwj0osau5x.png" title="1427804715119517.png" alt="1.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong>3.创建分区</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用fdisk命令来创建分区</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 格式:fdisk [-l] 设备名称</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -l:显示所有磁盘及分区的内容。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 例如:将磁盘/dev/sdb划分两个主分区分别为2G和512M。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/bc041ir5gdy.png" title="1427805356908134.png" alt="2.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 新建一个2G的主分区</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/40qsnpb02hf.png" title="1427805451882340.png" alt="3.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 以上是建立分区的过程,那么这些操作命令是什么意思呢,我们可以通过帮助信息来查询,如:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 可以输入m来获取帮助信息;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/n1o3i4pwn3t.png" title="1427805765853429.png" alt="5.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 比较常用的选项:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> p:显示磁盘分区表;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> n:新建分区;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> d:删除分区;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> t:修改分区的系统ID;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> w:保存并退出;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> q:不保存退出。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 下面接着来创建另外一个分区:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/5hddc5qlxwm.png" title="1427805658123940.png" alt="4.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 分区建好之后,系统并不能马上识别出来,这时使用两种方法使用分区生效:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1)重启系统</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2)使用partx -a命令</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/q5pm1jriivk.png" title="1427844380323637.png" alt="6.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 练习:删除分区/dev/sdb2</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/i1kxlagw4t5.png" title="1427844699121456.png" alt="7.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong> 4.创建文件系统</strong> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1)Linux的文件系统的类型:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> ext(2,3,4),xfs,ffs,ufs,reiserfs,jfs,vfat(fat 32),ntfs</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 交换文件系统:swap</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 网络文件系统:nfs,smbfs(cifs)</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 分布式文件系统:ceph</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 光盘文件系统:iso9660</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2)创建文件系统</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> mkfs -t 文件系统类型 设备文件名<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -t:系统可以支持的文件系统类型<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 例如:分区/dev/sdb1格式化为ext4文件系统</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/jin1zlqp0ka.png" title="1427845909994642.png" alt="8.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 上面的命令使用的是默认的选项,格式化完成后可以看到文件系统的卷标、block、inode等信息;我们也可以通过命令参数来自定义这些选项。<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -b:设置block大小;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -i:设置每个inode大小;<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -L:设置卷标;<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/pnp4zdlbi23.png" title="1427851263308000.png" alt="9.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用mke2fs命令可以格式化文件系统 </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> mke2fs [-t 文件系统类型][-b block大小] [-i inode大小] [-L 卷标] 设备文件名</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -i #:每#个字节给创建一个inode,此字节数不应该小于块大小</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -N #:直接指定可用的inode数;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -m #:指定预留空间占整个分区空间的百分比,默认为5;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -O:指定分区特性</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/rh1qh0igpuo.png" title="1427851423842879.png" alt="10.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong>5.挂载文件系统</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 挂载文件系统就是将额外的分区与根文件系统上的某目录建立关联关系;将文件系统挂载到某一目录时,目录中的原有文件将会被隐藏。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 挂载点:文件系统的访问入口,也就是文件系统被挂载到的目录。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用mount命令来挂载文件系统</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 格式:mount [-t 文件系统] [-L Lable名] [-o 挂载选项] 设备文件名 挂载点</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 不带任何参数:显示目前已经挂载的文件系统的信息;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -t:指定挂载文件系统的文件类型;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -L:使用Lable名进行挂载;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -o:可以接一些挂载选项,如:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> async:异步I/O,数据写操作先于内存完成,而后再根据某种策略同步至持久设备中 sync:同步I/O</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> atime/noatime:文件和目录被访问时是否更新最近一次的访问时间戳;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> auto/noauto:设备是否支持mount的-a选项自动挂载;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> dirtime/nodirtime:目录被访问时是否更新最近一次访问的时间;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> dev/nodev:是否支持在此设备上使用设备文件;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> exec/noexec:是否允许执行此设备上的二进制文件;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> suid/nosuid:是否支持在此设备的文件上使用suid;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> remount:重新挂载,通常用于不卸载的情况下重新指定挂载选项;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> ro:只读;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> rw:读写;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> user/nouser:是否允许普通用户挂载此文件设备;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> acl:在此设备上支持使用facl,默认不支持;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 例1:将上面创建的/dev/sdb1分区挂载到/mnt/sdb1目录;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/oiry1vwttuf.png" title="1427870909302913.png" alt="1.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> mount命令可以不带任何参数,将文件系统挂载到目录上。<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 例2:文件系统挂载默认是不挂载acl选项的,将文件系统重新挂载并添加acl功能选项;<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 通过tune2fs命令来查看挂载选项为(none); <br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/psvcznneiax.png" title="1427871048869488.png" alt="3.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用-o选项将/dev/sdb1重新挂载,并使用mount命令来查看挂载选项;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/nywvdwnoo1w.png" title="1427871120805419.png" alt="2.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 但是这种方式不能使设置永久生效,默认挂载选项依然是空;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/j1itfpef25j.png" title="1427871448415209.png" alt="3.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 可以通过tune2fs命令来添加默认挂载选项<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/fhvrlrbv1sq.png" title="1427871607999317.png" alt="5.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <img src="/upload/xdmt5fg5fxd.png" title="1427871613887837.png" alt="6.png" /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong>6.卸载文件系统</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用umount命令来卸载文件系统</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> umount 设备文件名或挂载点</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 例3:卸载/dev/sdb1文件系统</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/r2c5xvwxzkp.png" title="1427872521182551.png" alt="7.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 有时候文件系统会因为正在使用而无法被卸载,此时可以使用fuser命令来查看正在使用文件系统的用户,还可以直接将占用用户踢掉,然后卸载文件系统。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用umount卸载/dev/sdb1无法完成; </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/tmzztzfbz0g.png" title="1427872728846419.png" alt="8.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 查看哪些用户正在使用/dev/sdb1; </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/kttqf3xsdyg.png" title="1427873027361401.png" alt="9.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 将用户user5使用的进程杀掉,卸载成功;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/5fdtbwk0mtg.png" title="1427873072120009.png" alt="10.png" /><span style="font-family: 宋体, SimSun;font-size: 14px"> </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong>7.交换分区(swap)</strong></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 交换分区是指用于当物理内存不足时充当内存的分区空间。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1)创建交换分区</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用fdisk命令来创建交换分区,下面在/dev/sdb磁盘上创建交换分区; </span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 按照前面的方法创建一个512M的分区,但需要改变分区的类型,使用t命令来修改分区类型,使用L来查看各种分区类型所对应的代码,swap对应82;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/xpvqram0xwp.png" title="1427898484123650.png" alt="1.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/znf0irxihha.png" title="1427898496112834.png" alt="2.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/3f4gxb1gkuv.png" title="1427898503124266.png" alt="3.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用p查看分区结果,并且保存退出。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用mkswap命令来格式化swap分区;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/23shbmkk2z2.png" title="1427899512306267.png" alt="4.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用free命令来查看一下当前的swap空间;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/4mvumrslu32.png" title="1427899758366311.png" alt="5.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -m:表示使用MB来表示空间大小;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 加载新的swap空间到系统中;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/yefiqyskcua.png" title="1427899988300171.png" alt="6.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用swapon命令来加载swap空间;使用swapon -s命令也可以查看swapon的使用情况;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/2kxij3mlbd0.png" title="1427900099104314.png" alt="7.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2)关闭交换分区</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用swapoff命令来关闭交换分区</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/vul5bppzbpg.png" title="1427900200101437.png" alt="8.png" /></p> <h3><span style="font-family: 宋体, SimSun;font-size: 14px"></span></h3> <h3><span style="font-size: 20px;font-family: 宋体, SimSun">六.设置开机自动挂载文件系统<br /></span></h3> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用mount手动挂载的文件系统在系统重启后就会消失,需要反复进行挂载,我们可以将需要挂载的文件系统写入/etc/fstab文件,实现开机自动挂载文件系统。</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 先来看一下/etc/fstab文件的格式;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/pb0tcc4tmg2.png" title="1427900483537403.png" alt="9.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 文件中对应的项目含义如下:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 挂载设备 挂载点 文件格式 挂载选项 转储频率 自检次序</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 挂载设备:可以是设备文件、卷标、UUID;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 挂载点:文件系统挂载到的目录;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 挂载选项:挂载选项可以有多个,彼此间使用逗号分隔;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 转储频率:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 0:从不转储</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1:每天转储</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2:每隔一天</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 自检次序:</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 0:不自检,额外创建的文件系统都无须自动自检</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 1:首先自检,通常只有根文件系统需要首先自检</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 2:次级自检,不同的设备可以使用同一个自检次序</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 例如:实现/dev/sdb1分区开机自动挂载到/mnt/sdb1目录中,并且要求支持acl;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/3cdbdbbf2nw.png" title="1427900875105934.png" alt="10.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 使用命令mount -a来测试能否挂载成功;<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> </span><img src="/upload/4st0ykn0ty3.png" title="1427900972945616.png" alt="1.png" /></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 先卸载/dev/sdb1,再进行挂载测试。<br /></span></p> <h3><span style="font-family: 宋体, SimSun;font-size: 14px"></span></h3> <h3><span style="font-size: 20px;font-family: 宋体, SimSun">七.磁盘修复及参数修改<br /></span></h3> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> <strong>1.磁盘检验:fsck</strong><br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 因进程意外中止或系统崩溃等情况导入写入操作非正常中止时,可能会导致文件损坏;此时,应该修复文件系统;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> 格式:fsck -t 文件系统 -a -r 设备名称<br /></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -t:指定文件系统类型,可省略,系统可以自动判断其分类型; <br /></span></p> <p><span style="font-size: 14px"> -a:自动修复错误;</span></p> <p><span style="font-size: 14px"> -r:交互式修改错误;</span></p> <p><span style="font-size: 14px"> e2fsck:专用于修复ext系列文件系统</span></p> <p><span style="font-size: 14px"> -y:对问题自动回答为yes; </span></p> <p><span style="font-size: 14px"> -f:强制进行检测。</span></p> <p><span style="font-size: 14px"> <strong>2.显示块设备属性</strong></span></p> <p><span style="font-size: 14px"> blkid 文件系统</span></p> <p><span style="font-size: 14px"> </span><img src="/upload/orkg2xn1a1y.png" title="1427902397565598.png" alt="1.png" /></p> <p><span style="font-size: 14px"> <strong>3.查看超级块信息</strong></span></p> <p><span style="font-size: 14px"> tune2fs -l 设备文件 </span></p> <p><span style="font-size: 14px"> dumpe2fs -h 设备文件</span></p> <p><span style="font-size: 14px"> <strong> 4.修改卷标</strong></span></p> <p><span style="font-size: 14px"> e2label 设备文件 卷标</span></p> <p><span style="font-size: 14px"> tune2fs -L 卷标 设备文件 </span></p> <p><span style="font-size: 14px"> 5.<strong>tune2fs命令常用参数</strong></span></p> <p><span style="font-size: 14px"><strong> </strong><span style="font-size: 14px;font-family: 宋体, SimSun">-j:ext2升级为ext3;</span></span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -L LABEL:修改卷标;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -m #:修改预留空间百分比,默认为5;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -O [^]FEATURE:启用指定特性,特性前加”^”表示关闭此种特性;</span></p> <p><span style="font-family: 宋体, SimSun;font-size: 14px"> -o:设置默认挂载选项。</span></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信