4、Linux磁盘与文件系统管理

本文要点:

一、认识EXT2文件系统

二、文件系统的简单操作

三、磁盘的分割、格式化、检验与载入

四、设置启动载入

五、建立虚拟内存

 

一、认识EXT2文件系统

1、通常一个扇区的大小为512字节;

2、分区的要点就是记录每一个分区的起始与结束柱面;

3MBRmaster boot recorder)最多提供4个分区的记忆;

4、为提高磁头的读取效率,使用了逻辑块的概念,1Block=2n扇区;

5、每个文集系统开始位置的那个块称为超级块。超级块存储文件系统的大小、空的和满的块,以及其他信息;

6ext2规划出inodeBlock来分别储存档案的属性(放在inode当中)与档案的内容(放置在Block area当中)。

 

inode记录的信息:

1、该档案拥有者与群组(owner/group);

2、该档案的存取模式(read/write/excute);

3、该档案的类型(type fbcslpd);

4、该档案建立或状态改变的时间(ctime)、最近一次的读取时间(atime)、最近修改的时间(mtime);

5、该档案的容量;

6、定义档案特性的旗标(flag),如SetUID setgidstickybit

7、该档案真正内容的指向(pointer);

……

 

目录:在linux ext2文件系统建立一个目录时,ext2文件系统给该目录一个inode和至少一个blockinode记录目录属性,块记录这个目录下文件或目录的相关性。

文件:ext2至少给文件分配一个inode和相对于该文件大小的块的数量。

inode本身不记录文件名,仅记录文件的相关属性,文件名则记录在目录所属的块区域。使用dumpe2fs查看inode等的信息。

 

读取/etc/vsftpd/vsftpd.conf过程:


 

Ext2的几个特征:

1blockinode在格式化的时候就确定了;

2、一个分区能够容纳的文件数量与inode有关;

3、一个inode的大小为128字节;

4、块为固定大小,一般为1024/2048/4096,块的大小,在分时候的时候根据分区所要存储的文件类型决定块的大小;

 

1、当系统要写入一个档案的时候,会先在日志记录区块中记录:某个档案准备要写入磁盘;

2、开始写入档案的权限与数据;

3、开始更新metadata的数据;

4、完成数据与metadata的更新,在日志记录区块当中完成该档案的记录。

 

linux文件系统的运行:采取异步方式,读取一个文件时,将文件所在的块数据加载到内存中,如果文件数据被修改,在内存中的数据就被标记为“脏”,而磁盘中的数据还没有被修改,需要写入磁盘,以保证一致性。

 

载入点:必须是一个目录,不能是一个文件。

 

linux支持的文件系统查看/proc/filesystems/lib/modules/`uname -r`/kernel/fs

 

 

二、文件系统的简单操作

df [-ahikHTm] [目录或文件名]      显示系统中当前磁盘的总容量、已使用容量和剩余容量的一些信息。

参数:

-a:列出所有的文件系统,包括系统特有的/proc等文件系统;

-b:以Bytes为单位显示各文件系统;

-k:以KBytes为单位显示各文件系统;

-m:以MBytes为单位显示各文件系统;

-h:以人们较易阅读的显示各文件系统;

-H:以M=1000K取代M=1024K的进位方式;

-T:将分区的文件系统名称(例如ext3)显示出来;

-i:不用硬盘容量,而以inode的数量来显示。

 

du [-ahskm] 档案或目录名称      查看磁盘、目录的大小

参数:

-a:列出所有的档案与目录容量,因为预设仅统计目录底下的文件量而已;

-h:以人们易读的容量格式显示;

-s:列出总量,而不列出每个目录占用的容量;

-k:以KBytes列出容量显示;

-m:以MBytes列出容量显示。

 

ln [-sf] 来源文件 目标文件

参数:

-s:如果ln不加任何参数就进行连结,那就是hard link,至于-s就是symbolic link

-f:如果目标文件存在时,就主动的将目标文件直接移除后再建立。

 

Hard Link(硬式连结或实际连结):不能跨filesystem,不能link目录。

symbolic Link(符号连结,亦即快捷方式):可以和windows的快捷方式划等号。

 

三、磁盘的分割、格式化、检验与挂载

fdisk [-l] 装置名称

-l:输出后面接的设备所有的分区内容。若仅是fdisk -l时,则系统将会把整个系统内能够搜寻到的装置的分区全部列出来。

 

比较重要的有:

d删除一个磁盘分割;

n新增一个磁盘分割;

p将目前的磁盘分割列出来;

q不存储离开!

w写入磁盘分割表后离开!

partprobe

 

mke2fs [-bicLj] 装置名称   (make ext2 file system

参数:

-b:可以设定每个block的大小,目前支持102420484096bytes三种;

-i:多少容量给予一个inode呢;

-c:检查磁盘错误,只下达一次-c时,会进行快速读取测试;如果下达两次-c -c的话,会测试读写,会很慢;

-L:后面可以接卷标名称(Lable);

-j:本来mke2fsEXT2,加上-j后,会主动加入日志而成为EXT3

mkfsmkfs.ext2mkfs.ext3mkfs.dosmkfs.vfa

 

fsck [-AtCary] 装置名称

参数:

-tfsck可以检查几种不同的filesystem,而fsck只是一支综合程序而已。个别filesystem的检验程序都在/sbin底下,使用ls -l /sbin/fsck*去检查就知道有几种filesystem了;

-A:依据/etc/fstab的内容,将所有的装置都扫描一次(通常开机过程中就会执行此一指令);

-a:自动修复检查到的有问题的扇区,不用一直按y

-r:一定要让使用者决定是否需要修复,这与上一个-a刚好相反;

-y:与-a类似,但是某些filesystem仅支持-y这个参数,所有也可以利用-y

-C:可以在检验的过程当中,使用一个长条图来显示目前的进度;

-f:强制检查,一般来说,如果fsck没有发现任何unclean的旗标,不会主动进入内部检查的,如果想要强制fsck进入内部检查,就得加上-f旗标;

 

系统出现极大的问题,导致你在linux开机的时候得进入单人单机模式下进行维护的行为时,才使用fsck;被检查的partition务必不可挂载到系统上,即在卸载的状态下进行检查。

 

badblock [-svw] 装置名称

参数说明:

-s:在屏幕上列出进度;

-v:可以在屏幕上看到进度;

-w:使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的装置已经有档案时;

sync:直接将系统暂时存在内存当中的数据回存写入磁盘当中;

 

磁盘的挂载与卸载

mount [-tonL] 装置名称代号 挂载点

参数:

-a:依照/etc/fstab的内容将所有相关的磁盘都挂上来;

-n:一般来说,当我们挂载文件系统到linux上时,linux会主动的将目前的分区与文件系统还有对应的挂载点,都记录到/etc/mtab那个档案中。不过,有些时候(例如不正常关机导致一些问题,而进入单人模式)系统无法写入/etc/mtab时,就可以加上-n这个参数来略过写入mtab的动作;

-L:系统除了利用装置名称代号之外,还可以利用分区的卷标进行挂载,所以,最好为分区取一个系统当中独一无二的名称;

-tlinux支持的档案格式。举例来说,在挂载时,加上-t ext3来告知系统,用ext3的档案格式来挂载该分区;

 

至于系统支持的filesystem类型在/lib/modules/`uname -r`/kernel/fs/proc/filesystems当中。

常见的有:ext2ext3reiserfslinux惯用的文件系统;vfatmsdoswindows常见filesystemiso9660为光盘片的格式;nfssmbfs等网络相关档案系统。

 

-o:后面可以接一些挂载时,额外加上的的参数:比如账号、密码、读写权限等;

rorw:此partition为只读(ro)或可读写(rw);

asyncsync:此partition为同步写入(sync)或异步(async),预设是async

autonoauto:允许此分区被以mount -a自动挂载(auto);

devnodev:是否允许此分区上建立设备文件,dev为允许;

suidnosuid:是否允许此分区含有suid/sgid的文件格式;

execnoexec:是否允许此分区上拥有可执行binary档案;

usernouser:是否允许此分区让用户执行mount。一般来说,mount仅有root可以进行,但使用user参数,则可让一般用户也能够对此分区进行mount

defaults:默认值为:rwsuiddevexecautonouser and async

remount:重新挂载,在系统出错或重新更新参数时,很有用。

 

mount -a依照/etc/fstab的参数内容将所有的磁盘重新挂上去;

由于各个文件系统并不相同,所有挂载前要知道该分区的文件系统,若mount后面没有加-t档案系统格式时,则linux在预设的情况下,会主动以/etc/filesystem这个档案内规范的档案系统格式来尝试主动的挂载;

也可以利用mount将某个目录挂载到另外一个目录;

 

e2label 装置名称 新的label名称

 

四、设置启动载入

挂载软盘:

mount -t ext2 /dev/fd0 /mnt/floppy

mount -t vfat /dev/fd0 /mnt/floppy

 

挂载windows磁盘:

mount -t vfat /dev/hda1 /mnt/windows

mount -t vfat -o iochartset=cp950 /dev/hda1 /mnt/windows

 

开机挂载/etc/fstab/etc/mtab

根目录/是必须载入的,而且是第一个载入的;

其他载入点必须是已建立的目录;

所有载入点在同一时间内,只能载入一次;

所有分区在同一时间内,只能载入一次;

若进行卸载,必须将工作目录移到载入点(及其子目录)之外;

 

五、建立虚拟内存

fdisk新建立一个分区,mkswap /devsda?

dwapon /dev/sda?    swapoff /dev/sda?

 

dd if=/dev/zero of=/tmp/swap bs=1M count=100dd </dev/zero>/tmp/swap bs=1M count=100

mkswap /tmp/swap

swapon /tmp/swap

swapoff /tmp/swap

注意使用free查看内存的情况

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值