Linux之文件系统管理

分区和文件系统

1.  什么是分区:

··      分区就是对磁盘进行的一种格式化,然后才能使用硬盘保存各种信息,硬盘通常最多可以分成四个实际分区。其中主分区最多四个,最少一个,扩展分区最多一个,最少0个。

也就是说,主分区加上扩展分区最多只能有四个

       那么扩展分区是什么呢?其实扩展分区是用来划分逻辑分区的,因为有时候四个分区可能不能满足我们,但是又受限于当前工业水平的限制,最多只有四个分区,所以就可以在四个分区中,选择一个作为扩展分区,专门用来分逻辑分区。使得用户在表面上看来,磁盘被分为多个分区。

       分区的好处其实就是索引数据的时候更加快速。因为不用再全盘搜索了,变相的提升了速度

2.  什么是文件系统

文件系统就是:操作系统在存储设备上面组织数据的方法。这个就相当于一种对磁盘的高级格式化,将每一个分区按照自己的操作系统能识别的方式来组织数据。每一种操作系统都有自己的文件系统。比如Windows最开始是fat16,fat32,到现在的NTFS文件系统。Linux由最开始的ext2,ext3,到现在的ext4。

只有将磁盘分区,并且对分区进行格式化之后,操作系统才能写入磁盘,并且操作数据。

3.  常用文件系统结构

◆硬盘是默认无分区和格式化的。需要安装操作系统的时候做这些操作

◆移动硬盘是NTFS格式的文件系统,所以苹果系统通常只能读取,Linux通常不能识别,读不出来

◆USB:是fat32,格式的文件系统,因为为了兼容所有操作系统,在Linux中这个写成vfat

◆光盘:是iso9660格式的文件系统,所有的操作系统都能识别

Linux文件系统常用命令

.◆统计文件系统(分区和使用情况)的占用情况

df [选项] [挂载点]

选项:

       -a(all)     显示所有的文件系统信息,包括特殊文件系统,

              如/proc、/sysfs

       -h(habit)      使用习惯单位显示容量,如KB,MB或者GB等

       -T(Type) 显示文件系统类型

       -m(MB)  以MB为单位显示容量

       -k(KB)     以KB为单位显示铜梁,默认就是以KB为单位

       最常用的就是-h

◆-统计目录或者文件大小

du [选项] [目录或文件名]

#但是一般我们只用它来统计目录大小,而不是文件大小,统计文件大小用ll -h

#ll是ls -l的别名,就行了,如果用ll -h来统计目录大小只会显示,一级子目录

#文件名的大小,而不是内容

选项:

       -a 显示每个子文件的磁盘占用量,默认只统计子目录的磁盘占用量

       -h 使用习惯单位显示磁盘占用量,如KB,MB或者GB等,到达1GB,默认是GB单位,没有到达默认是MB.....

       -s 统计总占用量,而不列出子目录和子文件的占用量

◆df和du的区别:

相同点:都可以统计分区大小,因为在Linux中分区也是目录,比如单独分区的/boot,/根分区

区别:1.df,从文件系统出发,直接搜索数据库中分区的明细,统计分区大小,而du是需要扫描整个目录的。所以标满

     2.df命令是从文件系统考虑的,光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)--系统进程占用,所以长期下去,会变得很大,实际上,有一些空间已经没有用了,所以为了让空间不那么大,应该定期重启,否则会越来越大,进程或者其他没有释放空间,但是这个空间已经用完了,就会导致很多无用信息

     访问量过大的服务器,停机维护,主要是重启,访问量大的,一周重启一次,小的网站,一个月重启一次

     3.du命令是面向文件的,只会计算文件或者目录的占用空间

◆文件系统修复命令fsck---自动执行,不需要我们来执行

fsck [选项] 分区设备文件名

选项:-a       不用显示用户提示,自动修复文件系统

     -y 自动修复。和-a作用一直,不过有些文件系统只支持-y

     这个命令知道就行,因为这个命令在开机的时候,就会自动执行

     你执行这个命令,说不定还会把系统高崩溃哦

.◆显示磁盘状态命令dumpe2fs

dumpe2fs 分区设备文件名

主要用来查看分区或者设备的(因为设备就是一个分区,挂载点)

主要用来看i节点和块大小,window有一个磁盘碎片整理,其实就是将

文件的数据块放在一起,不用再那么散乱,可以加快访问速度。

Linux的挂载

       什么是挂载:把设备和挂载点(Windows中称为盘符,Linux中是目录)连接起来的过程就是挂载。

所有存储设备都需要挂载,只不过硬盘是自动挂载的。但是我们使用的光盘,软盘,U盘就必要认为挂载。

1.  查询与自动挂载:

mount[-l]

#查询系统中已经挂载的设备,-l会显示卷标的名称

mount -a

#一句配置文件/etc/fstab的内容,自动挂载

2.  挂载命令格式

mount[-t(type) 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点

    选项;

      -t文件系统:加入文件系统类型来指定挂载的类型,可以为ext3、ext4、

       ios9660(光盘)等文件系统

      -o特殊选项:可以指定挂载的额外选项

      -L卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载

说明:

  mount -o remount,noexec /home/

  表示将home分区重新挂载,并且可执行文件,即使是root用户,并且

  有可执行权限,也不能让脚本运行。可以通过dumpe2fs,来查看

   mount -o remount,exec /home/

   和上面相反,重新赋给执行权限

      -o,针对的都是分区。

3. 挂载光盘

光盘的设备文件名,是系统默认的,记下来就行了,是sr0

    cdrom是sr0的软链接,挂载这个也可以。如果有两个光盘

    那么就是sr1和cdrom1,等...

   mkdir /mnt/cdrom

       #建立挂载点

    格式一:mount -t ios9660 /dev/cdrom /mnt/cdrom/

       #挂载光盘

格式二:mount/dev/sr0 /mnt/cdrom/  -------因为Linux光盘默认是ios9660,所以不用写

4.卸载命令

umount 设备文件名或挂载点

    例子:umount/mnt/cdrom

   :卸载的命令坚决不可以省略,只有卸载了,才能将光盘拿出来,否则在真实机,不能弹出光盘

   而且,卸载命令坚决不能再挂载点中,只有出了挂载点才能卸载,否则会出现设备正忙的字样

5.挂载U盘

U盘设备文件名不是固定的,所以要先查看。U盘和硬盘的命令规则是一样

     fdisk -l

#查看U盘设备文件名

      mount -t vfat(默认4个g) /dev/sdb1 /mnt/usb/

       注意:Linux是默认不支持NTFS文件系统的,也就是说,不支持移动硬盘

6. 支持NTFS文件系统

Linux是不识别NTFS文件系统的。

所以想要让Linux支持NTFS

两种方法:1.将驱动嵌入Linux内核,重新编译Linux内核

             2.安装NTFS-3G插件,很明显这个插件更加合理

 网址:http://www.tuxera.com/community/ntfs-3g-download/

挂载ntfs

mount -t ntfs-3g 分区设备文件名 挂载点

卸载命令同上。

Linux的分区

1.查看新硬盘;

       fdisk-l

2.使用fdisk命令分区;

       fdisk/dev/sdb  ---------不写任何数字比如sdb1,因为这是个新硬盘,还没有分区

       硬盘是不分区的,但是U盘,还有光盘,移动硬盘等,都是分好区的,为了方便

       执行fdisk /dev/sdb 后会出现一些交互

   命令         说明

   a              设置可引导标记

   b              编辑bsd磁盘标签

   c       设置DOS操作系统兼容标记

   d              删除一个分区

   l        显示已知的文件系统类型(Linux根据ID查看文件系统类型82为ID)。82为Linux的swap分区,83为Linux分区

   m             显示帮助菜单

   n              新建分区

   o              建立空白DOS分区表

   p              显示分区列表

   q              不保存退出

   s       新建空白sun磁盘标签

   t        改变一个分区的系统id

   u              改变显示记录单位

   v       验证分区表

   w             保存退出

   x       附加功能(仅专家)

   常用的就是d、l、m、n、q、t、w、p

3.  partprobe

分区完之后,不想重启怎么办

在读取一遍分区表信息就可以了

执行partprobe命令:

partprobe

4. 格式化分区:

       扩展分区不能格式化。格式化扩展分区的逻辑分区可以

     mkfs -t ext4 /dev/sdb1

      mkfs -t ext4 /dev/sdb2

    mkfs -t ext4 /dev/sdb5

5.创建挂载点

比如一个是这样的

mkdir /disk1

6.挂载分区   

mount /dev/sdb1 /disk1/

分区自动挂载

因为分完区之后,每次读取硬盘,都需要手动挂载,很麻烦,所以将分区信息写入fstab,就能让硬盘每次自动挂载,否则重启每次就会消失。将其中一个分区写入有六个字段

1.将硬盘信息写入/etc/fstab  这样的话每次就会自动挂载了

第一个字段:

       分区设备文件名或者UUID(硬盘通用唯一标识码),可以用dumpe2fs -h 分区设备文件名,

       查看UUID,dumpe2fs -h /dev/sdb1

第二个字段:

       挂载点

第三个字段:

       文件系统名称

第四个字段:

       挂载参数,指定权限,defaults是默认权限,和mount中-o 后面写的相对应

       可以用mount来修改

第五个字段

       指定分区是否被dump备份,0代表不备份,1代表每天

       备份,2代表不定期备份,有1的时候,当出现问题的时候会默认备份到lost-found

       中,只有分区才能有lost+found目录,因为这个dump备份就是备份的分区

第六个字段:

       指定分区是否被fsck检测,0代表不检测,其他数字

       代表检测的优先级,1当然比2的优先级高

检查fstab文件

如果将/etc/fstab,写错了,因为这个配置文件很重要,所以在系统有可能导致系统崩溃,因此修改完这个配置文件要进行检查。

执行    mount -a ( 依据配置文件/etc/fstab的内容,自动挂载)命令,检测以下这个文件是否出现问题否则下一次重启开机,或者关机开机的时候,如果出错,会导致系统崩溃

如果有报错就会提示,这个时候修改这个文件,没有报错,就没有提示

猜你喜欢

转载自blog.csdn.net/swf_shixinshou/article/details/80219607