热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Liunx学习笔记05文件系统管理

Liunx学习笔记-05-文件系统管理1分区类型和文件系统分区类型对于一块硬盘而言,需要分区才能使用,有三种分区类型:主分区、扩展分区和逻辑分区。主分区:一块硬盘最多只能分

Liunx学习笔记 - 05 - 文件系统管理


1 分区类型和文件系统


分区类型

对于一块硬盘而言,需要分区才能使用,有三种分区类型:主分区、扩展分区和逻辑分区。

主分区:一块硬盘最多只能分4个主分区;
扩展分区:一块硬盘最多只能有1个扩展分区,且扩展分区也属于主分区的一种,即主分区加扩展分区最多只能有4个;然而扩展分区既不能存储数据也不能格式化,其唯一的作用是做逻辑分区处理(相当于中间商)。
逻辑分区:逻辑分区是在扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区,如果是SCSI硬盘,Linux最多支持11个逻辑分区。

所以,一般都是分1-3个主分区,外加1个扩展分区,然后在扩展分区里面再划分很多个的逻辑分区。

在Windows中,分区之后,他们的目录名称就按照分区的先后自动命名成了C、D、E、F、G……等。然而Linux中并无此说法。

Linux将分区命名为设备名,对于sata硬盘,即主分区1为/dev/sda1,主分区2为/dev/sda2,主分区3为/dev/sda3,扩展分区为/dev/sda4,逻辑分区1、2、3……分别为/dev/sda5、/dev/sda6、/dev/sda7……注意,即便没有主分区2和主分区3,那么逻辑分区依旧是从5开始编号的,只是此时扩展分区是紧接着上个主分区编号而已。即/dev/sda1-4始终是留给主分区的,而/dev/sda5-N则是给逻辑分区的!

比如,只分了一个主分区+一个扩展分区,在扩展分区里面则又分了3个逻辑分区,那么他们的设备名分别为:






























分区设备名
主分区1/dev/sda1
扩展分区/dev/sda2
逻辑分区1/dev/sda5
逻辑分区2/dev/sda6
逻辑分区3/dev/sda7

更有意思的是,Linux中自己架构了一套目录树结构,所有的目录都是从根目录/开始的,而用户的文件则一般放到家目录/home/用户名中,管理员自己的目录为/root,跟启动相关的都在/boot中,还有其他很多目录,而这些目录是要跟硬盘的分区相挂载的,也就是要指定他们放到哪个分区里面去。
一般单独给/boot分个200M~1G空间,作为启动盘,有点像win7前面多出来那100M哈;
给根目录/分个10-100G的分区,类似于Windows的C盘系统了;
给/home分个上百G,类似于Windows中我的文档;
还有个特殊的/swap交换分区,它和Windows的虚拟内存比较类似,给它单独分个2-4G就好了,当然,如果你内存非常大,这个/swap不分也没问题的;
对于其它没有指定挂载点的目录,他们就跟着根目录/挂载到对应分区上了;
如果你还有特别重要的数据做备份,可以单独做个备份的分区来玩。


文件系统

windows里面分区也是要对应文件系统的,比如FAT32、NTFS等,硬盘一般都用NTFS,因为FAT32的话,大于4G的文件就无法支持,比如整个高清电影十几个G,就放不进去了。

同样,Linux也有自己的一套文件系统,叫ext2、ext3、ext4,现在都是ext4系统了。ext4系统最大系统容量达到1EB(1EB=1024PB=1024*1024TB),而单个文件的最大容量则达到16TB,这是非常非常大的数字了!


2 文件系统常用命令df、du、fsck、dumpe2fs


2.1 文件系统查看命令df

语法:df [选项] [挂载点]
选项:
-a 显示所有文件信息,包括特殊文件系统,如/proc、/sysfs
-h 使用习惯单位显示容量,如kB、MB、GB等
-T 显示文件系统类型,如ext2、ext3、ext4等
-m 以MB为单位显示容量
-k 以KB为单位显示容量

示例

df -h / #查看根分区的文件系统,显示
文件类型 容量 已用 可用 已用 挂载点
/dev/sda5 92G 4.5G 83G 6% /

df -h /home #查看家目录所在分区的文件系统,显示
文件类型 容量 已用 可用 已用 挂载点
/dev/sda7 132G 238M 125G 1% /home

也可以写挂载点,比如df -h同时查看所有分区的挂载信息。


2.2 统计目录或文件大小du

语法:du [选项] [目录或文件名]
选项
-a 显示每个文件的磁盘占用量,默认只统计 子目录的磁盘占用量
-h 使用习惯单位显示磁盘占用量,如kB、MB、GB等
-s 统计总占用量,而不列出子目录和子文件的占用量

示例:

du -sh /home #显示家目录的文件大小,显示如下
177M /home

如果对比df的显示结果就会发现,df出来的家目录为238M,而这里du的家目录才177M,这是由于df除了统计文件大小,还统计了系统、进程等临时文件所占资源,所以其统计出来的空间较大!而du只统计了文件大小,所以较小,du也是比较真实的大小反映。


2.3 文件系统修复命令fsck

语法:fsck [选项] 分区设备文件名
选项:
-a 不用显示用户提示,自动修复文件系统
-y 自动修复,和-a作用一致,但有些文件系统只支持-y

不建议使用文件系统修复命令fsck,搞不好就系统崩溃了,而且系统自己本身就会自动修复的。


2.4 显示磁盘状态命令dumpe2fs

语法:dumpe2fs 分区设备文件名
示例:

dumpe2fs /dev/sda5 | more # 查看根目录所在分区/dev/sda5的磁盘状态,由于显示内容太长了,用管道符“|”给more来查看

显示的内容非常多,那么可以看到有一行是

……
Block count: 24413696
……
Block size: 4096
……

那么我们就知道每一个分块大小是4096kB,即4k,而共有24413696个分块,大约是192.3GB。


3 文件管理常用命令-挂载命令mount

挂载,即将设备文件名 与 对应设备(如硬盘分区、光盘、U盘、软盘)等挂载点相连接的过程。


3.1 查询与自动挂载

语法:mount [-l]
作用:查询系统中已经挂载的设备,-l会显示卷标名称

语法:mount -a
作用:依据配置文件/etc/fstab的内容,自动挂载


3.2 挂载命令格式

mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点
选项:
-t 文件系统:加入文件系统类型来指定挂载的类型,可以为ext3、ext4、iso9660等文件系统,其中iso9660为光驱的标准。
-L 卷标名(别名):挂载指定卷标的分区,而不是安装设备文件名挂载
-o 特殊选项:可以指定挂载的额外选项,参考帮助。


3.3 挂载和卸载光盘

挂载光盘的过程:

先mkdir /mnt/cdrom/ 建立一个空目录用作挂载点(类似windows中的盘符,Linux中为空目录);
再将光盘放入光驱;
用mount -t iso9660 /dev/cdrom /mnt/cdrom即可将光驱的设备文件名/dev/cdrom与挂载点/mnt/cdrom挂载起来,或者用mount /dev/sr0 /mnt/cdrom,不写文件类型也没关系,系统会用默认的文件系统,也是OK的,这个/dev/sr0和/dev/cdrom的设备文件名是等效的,两者是软链接关系,都是指光驱;
接下来就可以cd /mnt/cdrom进入到挂载点目录,直接进入光驱目录了。

卸载光盘的过程:

先cd …退出光盘目录;注意在光盘目录中是无法卸载的,因为不能自己在梯子上把梯子抽调啊~
再unmount /mnt/cdrom或unmount /dev/cdrom或unmount /dev/sr0即可卸载光盘。相当于windows中的光盘右键鼠标,弹出的操作。


3.4 挂载和卸载U盘

挂载U盘的过程

先fdisk -l查看U盘的设备文件名,若仅有一块硬盘,其为sda,则插入U盘会被分成sdb,若只有一个分区,分区号为sdb1,若有两块硬盘分别为sda和sdb,则插入的U盘会被分成sdc,若只有一个分区,分区号为sdc1;
再mkdir /mnt/usb创建挂载点;
然后mount -t vfat /dev/sdb1 /mnt/usb来挂载U盘,因为Liunx不支持Windows的NTFS文件系统,至于fat32和fat64文件系统,要分别指定类型为vfat和fat才能挂载;
就可以cd /mnt/usb进入U盘目录操作了。

卸载U盘的过程

先cd …退出U盘目录;
再umount /dev/usb卸载U盘,即可。


4 fdisk分区

添加新硬盘;

fdisk -l查看新硬盘的设备文件名,若之前只有一块硬盘,那么新硬盘会被命名为/dev/sdb;

使用fdisk /dev/sdb命令进行分区;

在交互界面的提醒下完成分区过程……

用partprobe重新读取分区表信息;

用mkfs -t ext4 /dev/sdb1格式化各分区;

建立挂载点并挂载各分区,如mkdir /disk1,mount /dev/sdb1 /disk1。

但是这种手动挂载每次开机都要重新手动执行一遍,比较麻烦,若要开机自动挂载,可以修改配置文件/etc/fstab,把新分区写道该文件中去,即可,写入格式参考该文件中其他分区:

……
UUID=…… /disk1 ext4 defaults 1 2
……

其中的UUID是硬盘通用的唯一标识码,用dumpe2fs -h /dev/sdb1可查看该UUID码,把它写进去就好了。

用mount -a先重新挂载一遍,要没问题,就好了,如果有问题,看哪里写错了,再该对就妥了。


推荐阅读
  • 来源:IT之家IT之家10月24日消息,微软官方宣布,已正式推出Windows11安卓子系统WSAv1,允许Windows11用户通过亚马逊应用商店运行 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 本文介绍了如何使用MATLAB调用摄像头进行人脸检测和识别。首先需要安装扩展工具,并下载安装OS Generic Video Interface。然后使用MATLAB的机器视觉工具箱中的VJ算法进行人脸检测,可以直接调用CascadeObjectDetector函数进行检测。同时还介绍了如何调用摄像头进行人脸识别,并对每一帧图像进行识别。最后,给出了一些相关的参考资料和实例。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • scrcpy通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需要任何ro ... [详细]
  • Apple iPad:过渡设备还是平板电脑?
    I’vebeenagonizingoverwhethertopostaniPadarticle.Applecertainlydon’tneedmorepublicityandthe ... [详细]
  • 计算机原理概念:1、CPU和内存中的存储单元通信线路称为总线(BUS),总线是被指令和数据复用的,所以也称为前端总线。2、计算机中计算频率的时间标准即晶体振荡器原理,精确计算时间长 ... [详细]
  • dell装双系统linux系统,记录DELL灵越7590/7591安装Ubuntu+Win10双系统
    前言因学习所需,想给自己的笔记本安装Linux系统(虚拟机运行性能并不理想),但Win10也不能缺少,用了一些时间来折腾LinuxWin1 ... [详细]
author-avatar
你是我的命_lY
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有