21-文件系统管理
分区
主分区:总共最多只能分四个
扩展分区:只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多有四个。但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用。
逻辑分区:逻辑分区是在扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区,如果是SCSI硬盘Linux最多支持11个逻辑分区
扩展分区相当于目录文件
分区 | |
---|---|
主分区1 | /dev/sda1 |
主分区2 | /dev/sda2 |
主分区3 | /dev/sda3 |
扩展分区 | /dev/sda4 |
逻辑分区1 | /dev/sda5 |
逻辑分区2 | /dev/sda6 |
逻辑分区3 | /dev/sda7 |
挂载点实质上是目录
Linux最多四个分区,可以有1-4个主分区
扩展分区内还是可以再分的,这个跟Windows类似。
所以要想实现4个以上的区域分隔的话,需要用到扩展分区
Linux中的磁盘
sd:SCSI硬盘,u盘
hd:IDE硬盘
sda中的a:代表识别出来的第一块磁盘,往后以此类推
Linux中的磁盘是以目录的方式来分区的,Windows中的CDE盘等叫做根目录,其他叫子目录。
Linux磁盘分区中的挂载点就是目录,Linux中只有一个根目录(建议挂boot目录)类型选择exp4 。
boot目录放置操作系统引导程序一般200m就够了。
swap分区相当于Windows系统里的虚拟内存,一般是实际内存的1.5倍。
!!!!!物理内存不够用才会用到虚拟内存,解决方法加内存条。
/是根目录,程序一般都放在这里
文件系统
-
ext2
是ext文件系统的升级版,最大支持16TB的分区和最大2TB的文件
-
ext3
支持大小和ext2一样,和ext2不同的是带有日志功能,在系统突然停止时提高文件系统的可靠性
-
ext4
最大支持1EB文件系统和156TB文件,无限量子目录,Extents连续数据块概念,多块分配…
文件系统常用命令(一)
-
df [选项] [挂载点] 显示分区占用状态
(df看到的空间才是系统可用空间)
-
-a 显示所有文件系统信息,包括特殊文件系统如 /proc,/sysfs
-
-h 使用习惯单位显示容量,如KB MB GB等
-
-T 显示文件系统类型
-
-m 以MB为单位显示容量
-
-k 以KB为单位显示容量(默认是以KB显示的)
-
-
du [选项] [目录或文件名] 统计目录或文件大小
- -a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
- -h 人性化显示
- -s 统计总占用量,而不列出子目录和子文件的占用量
注意!!
-
统计文件大小建议用ls,统计目录大小用du!!!!ls只会显示目录下的子目录文件名占的大小!!
-
du会扫描所有文件然后进行总和,所以不要在服务器高负载的时候使用该命令
-
fsck [选项] 分区设备文件名 文件系统修复命令
(容易把系统弄崩溃!!!谨慎使用)
- -a 不显示用户提示,自动修复文件系统
- -y 自动修复,和-a作用一致,不过有些文件系统只支持-y
-
dumpe2fs 分区设备文件名 显示磁盘状态命令
文件系统常用命令(挂载命名)
-
mount 查询系统中已经挂载的设备
- -l 会显示卷标名称
-
mount -a 自动挂载
依据配置文件/etc/fstab内容自动挂载
挂载命令格式
-
mount [-t 文件系统] [-L卷标名] \ [-o特殊选项] 设备文件名 挂载点
-
-t 文件系统
硬盘、分区默认文件系统ext3、ext4
光驱默认文件系统iso9660
-
L 给分区起名,可以不写
-
-o 指定挂载的额外选项
-
挂载光盘和U盘
光盘:
- 建立挂载点(相当于盘符)
mkdir/mnt/cdrom/
-
将光盘放入光驱
-
执行挂载命令
/dev/cdrom是指向sr0的软链接
挂载光盘:mount -t /dev/cdrom/ /mnt/cdrom/
也可以这样写:mount /dev/sr0/ /mnt/cdrom/
(挂载光盘的实质是将光盘和挂载点连接起来)
访问数据要去挂载点访问(/mnt/cdrom/)
只有卸载完之后才可以弹出光盘
卸载光盘
卸载光盘的时候要退出光盘
-
umount 设备文件名或挂载点
umount /mnt/cdrom
u盘:
u盘的设备文件名是自动分配的
-
fdisk -l查询u盘设备文件名
-
mkdir/mnt/usb/
-
mount -t vfat /dev/sdb1 /mnt/usb/
(Linux默认不支持NTFS格式,将FAT16识别成fat,将FAT32识别成vfat)
fdisk分区
fdisk 交互命令
命令 | 说明 |
---|---|
a | 设置卷标 |
b | 编辑bsd磁盘标签 |
c | 设置DOS操作系统兼容标记 |
d | 删除一个分区 |
l | 显示已知的文件系统类型82为Linux swap分区,83为Linux分区 |
m | 显示帮助菜单 |
n | 新建分区 |
o | 建立空白DOS分区表 |
p | 显示分区列表 |
q | 不保存退出 |
s | 新建空白SUN磁盘标签 |
t | 改变一个分区的系统ID |
u | 改变显示记录单位 |
v | 验证分区表 |
w | 保存退出 |
x | 附加功能(仅专家) |
- fdisk -l 查询新硬盘是否被识别
- fidisk /dev/sdb
- n
- 设置主分区或者扩展分区, p为主分区
- 设置分区号 1
- 分配柱面大小 +2G (分配大小)
- 设置扩展分区e
- 设置分区号 2
- 分配柱面大小 +10G (分配大小)
- 设置逻辑分区l
- 分配柱面大小 +2G (分配大小)
- w 保存退出
完成以上步骤之后还要
-
partprobe 重新读取分区信息
-
mkfs -t ext4 /dev/sdb1 格式化分区
-
创建挂载点
mkdir /disk1
mkdir /disk5
mount /dev/sdb1/ /disk1
mount /dev/sdb5/ /disk5
fdisk分区自动挂载和fstab文件修复
自动挂载本质是修改/etc/fstab文件
手动挂载的重启要重新挂载
- 第一字段 挂载点
- 第二字段 文件系统名称
- 第三字段 挂载参数
- 第四字段 挂载参数
- 第五字段 指定分区是否被dump备份,0表示不备份,1表示每天备份,2表示不定期备份
- 第六字段 指定分区收费被fsck检测,0表示不检测,其他数字表示检测的优先级,1比2优先级高
要想自动挂载就写到这个文件里,以下以自动挂载sdb1为例
/dev/sdb1 /disk1 ext4 defaults 1 2
写完之后执行 mount -a 如果写错了会报错,不至于系统崩溃的时候才发现写错了
fstab文件修复
每个分区下面都有自动备份的数据文件lost+found
-
如果fstab文件写错了,可以进入系统但是更改不了/etc/fstab文件(文件权限为只读)
解决方法:mount -o remount,rw /
(将根目录重新挂载,并赋予rw权限)