分区和文件系统
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的内容,自动挂载)命令,检测以下这个文件是否出现问题否则下一次重启开机,或者关机开机的时候,如果出错,会导致系统崩溃
如果有报错就会提示,这个时候修改这个文件,没有报错,就没有提示