首页 > 学院 > 操作系统 > 正文

9 文件系统管理

2024-06-28 16:04:18
字体:
来源:转载
供稿:网友

9.1 回顾分区和文件系统

分区类型

主分区:总共最多只能分四个

扩展分区:只能有一个,主分区加扩展分区最多有四个,必须再划分成逻辑分区才能使用。

逻辑分区:在扩展分区中划分的

    IDE硬盘最多支持59个逻辑分区

    SCSI硬盘最多支持11个逻辑分区

 

—————————————————————————————————————————————————

 

分区表示方法

主分区1    /dev/sda1

主分区2    /dev/sda2

主分区3    /dev/sda3

扩展分区   /dev/sda4

    逻辑分区1    /dev/sda5

    逻辑分区2    /dev/sda6

    逻辑分区3    /dev/sda7

.

.

.

 

主分区1    /dev/sda1

扩展分区   /dev/sda2

    逻辑分区1    /dev/sda5

    逻辑分区2    /dev/sda6

    逻辑分区3    /dev/sda7

.

.

.

 

—————————————————————————————————————————————————

 

文件系统

ext2:

是ext文件系统的升级版本,Red Hat linux7.2版本以前的系统默认都是ext2文件系统。

1993年发布,最大支持16TB的分区和最大2TB的文件(1TB=1024GB=1024*1024KB)

 

ext3:

ext3文件系统是ext2文件系统的升级版本,最大的区别就是带日志功能

以在系统突然停止时提高文件系统的可靠性。支持最大16TB的分区和最大2TB的文件。

 

ext4:

它是ext3文件系统的升级版。ext4在性能、伸缩性、可靠性方面进行了大量改进。

ext4的变化可以说是翻天覆地的,比如向下兼容ext3、最大1EB文件系统和16TB文件,无限数量子目录,Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。是CentOS6.3的默认文件系统

(1EB=1024PB=1024*1024TB)

 

—————————————————————————————————————————————————

 

9.2 文件系统常用命令

9.2.1 df du dumpe2fs

文件系统查看命令df

df  #可以看到所有分区

df 选项 挂载点   report file system disk space usage

-a 显示所有的文件系统信息,包括特殊文件系统,如/PRoc、/sysfs

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

-T 显示文件系统类型

-m 以MB为单位显示容量

-k 以KB为单位显示容量。默认就是以KB为单位

 

—————————————————————————————————————————————————

 

统计目录或文件大小

du 选项 目录或文件名  estimate file space usage

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

-h 使用习惯单位显示磁盘占用量,如KB,MB或GB等

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

 

du更慢,更耗费资源

 

du命令和df命令的区别

du用于看文件大小

df用于看剩余空间

df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)

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

 

Linux服务器应该定期重启,以释放程序占用的磁盘空间

游戏、下载、在线电影等高负载服务器应每周重启一次

网站应每个月重启一次

—————————————————————————————————————————————————

 

文件系统修复命令fsck    check and repair a Linux file system

fsck 选项 分区设备文件名

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

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

 

此命令是底层修复命令,系统会自动执行,知道作用就好,不需要自己操作,可能崩溃

—————————————————————————————————————————————————

 

显示磁盘状态命令dumpe2fs    dump ext2/ext3/ext4 filesystem information

dumpe2fs 分区设备文件名

可以查看分区的数据块有多大

 

dumpe2fs /dev/sda1

—————————————————————————————————————————————————

 

9.2.2 挂载命令

1、查询与自动挂载

mount -l

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

/proc  /sys 是内存

 

mount -a

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

—————————————————————————————————————————————————

 

2、挂载命令格式

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

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

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

-o 特殊选项:可以指定挂载的额外选项。针对分区

 

atime/noatime

更新访问时间/不更新访问时间。

访问分区时,是否更新文件的访问时间,默认更新

 

async/sync

异步/同步

默认为异步

 

auto/noauto

自动/手动

mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动

 

defaults

定义默认值,相当于rw suid dev exec auto nouser async这七个选项

 

exec/noexec

执行/不执行

设定是否允许在文件系统中执行可执行文件,默认exec允许

如果是文件服务器,可以设置为noexec

 

remount

重新挂载已经挂载的文件系统,一般用于指定修改特殊权限

 

rw/ro

读写/只读

文件系统挂载时,是否具有读写权限,默认是rw

 

suid/nosuid

具有/不具有SUID权限

设定文件系统是否具有SUID和SGID的权限,默认是具有

 

user/nouser

允许/不允许普通用户挂载

设定文件系统是否具有SUID和SGID的权限,默认是具有

 

usrquota

写入代表文件系统支持用户磁盘配额

默认不支持

 

grpquota

写入代表文件系统支持组磁盘配额

默认不支持

 

 

例子:

mount -o remount,noexec /home

#重新挂载/home分区,并使用noexec权限

cd /home

vi hello.sh    

chmod 755 hello.sh

./hello/sh #提示权限不够

mount -o remount,exec /home

—————————————————————————————————————————————————

 

9.2.3 挂载光盘与U盘

挂载光盘

1、建立挂载点

mkdir /mnt/cdrom/

 

2、挂载光盘,两个可选命令

mount -t iso9660 /dev/cdrom /mnt/cdrom/

mount /dev/sr0 /mnt/cdrom

#在/dev下,cdrom是sr0的软连接方式

 

 

卸载命令

umount 设备文件名或挂载点

 

例子:

umount /mnt/cdrom

—————————————————————————————————————————————————

 

挂载U盘

1、查看U盘设备文件名

fdisk -l

 

2、挂载U盘

mount -t vfat /dev/sdb1 /mnt/usb

 

把FAT16识别为FAT

把FAT32识别为VFAT

注意:Linux默认是不支持NTFS文件系统的

—————————————————————————————————————————————————

 

9.2.4 挂载NTFS文件系统

两种方法:

1、内核编译,将NTFS的驱动加入进来,用的极少

2、第三方软件

   下载NTFS-3G插件

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

 

tar -zxvf ntfs-3g_ntfsprogs-2014.2.15.tgz

cd ntfs-3g_ntfsprogs-2014.2.15

./configure

make

make install

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

—————————————————————————————————————————————————

 

9.3 fdisk分区

Partition table manipulator for Linux

手工分区命令

 

fdisk命令分区过程

1、添加新硬盘

2、查看新硬盘

fdisk -l

Linux通过ID的方式来识别分区

83 Linux的标准分区

82 swap分区

5  Extended分区

 

3、使用fdisk命令分区

fdisk /dev/sdb

 

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 附加功能(仅专家)

 

4、重新读取分区表信息

partprobe  #避免重启

 

5、格式化分区  build a Linux file system

mkfs -t ext4 /dev/sdb1

#不能格式化扩展分区

6、建立挂载点并挂载

mkdir /disk1

mount /dev/sdb1 /disk1

 

此时,每次启动都要手动挂载硬盘分区

—————————————————————————————————————————————————

分区自动挂载与fstab文件修复

 

1、/etc/fstab文件

第一字段:分区设备文件名或UUID(硬盘通用唯一识别码)

第二字段:挂载点

第三字段:文件系统名称

第四字段:挂载参数

第五字段:指定分区是否被dump备份,0代表不备份,1代表每天备份,2代表不定期备份

第六字段:指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,那么当然1的优先级比2高(手动添加的分区应小于等于2)

 

查看UUID命令

dumpe2fs -h /dev/sdb1

 

每个分区都有lost+found目录用于备份

 

 

2、分区自动挂载

/dev/sdb1  /disk1  ext4  defaults  1 2

 

mount -a

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

 

 

3、/etc/fstab文件修复

mount -o remount,rw /

#重新挂载根分区为读写权限

然后修改fstab配置

—————————————————————————————————————————————————

 

新建swap分区

 

1、新建swap分区

fdisk /dev/sdb

#将分区ID改为82

 

2、格式化

mkswap /dev/sdb6    #mkswap   set up a Linux swap area

 

3、加入swap分区

swapon /dev/sdb6

 

swapoff /dev/sdb6

#取消swap分区

 

4、swap分区开机自动挂载

vi /etc/fstab

 

/dev/sdb6  swap  swap  defaults 0 0

 

5、free命令

#查看内存与swap分区使用情况

cached(缓存):

把读出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取

加速了数据的读取过程

 

buffers(缓冲):

在写入数据时,先分散的写入操作保存到内存中,当达到一定程度再集中写入硬盘

减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程

 

 

 

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表