这章之前首先说下一最新的ext文件系统应该是ext4,但是因为书比较早,所以没有这块东西,新版书中应该有,我会在读第二遍(新版)之后补充。
假设有一个分区,/dev/hdb5这个分区载入到/disk2且disk2目录已经建立,该分区使用ext3文件系统,设置该分区开机挂载可以修改/etc/fstab文件增加如下信息:
/dev/hdb5 /disk2 ext3 defaults 2 2
修改完成使用mount -a查看是否正确载入
ext2提醒:
1、ext2和ext3文件在建立时就已经设置好固定的inode数和块数了
2、格式化ext2文件系统,可以使用 mke2fs程序来执行
3、ext2允许的块大小为1024,2048及4096
4、一个分区所能容许的最大文件数和inode数量有关
5、目录下面的文件数如果太多,导致一个块无法容纳所有的关联数据,
linux会给予该目录更多的块,继续关联数据
6、一个inode占用128个字节的空间,分区格式化之后inode表就会占用一
部分空间
7、因为一个inode只能记录一个文件属性,所以inode比块多没有意义
8、块越小,inode越多则空间利用的越充分,但是对大文件效率会降低
9、块越大,inode越少,则对大文件效率越高,但是空间利用的不充分
特征:
1、块与inode在格式化时就已经固定了
2、一个分区能够容纳的文件数与inode有关
3、一般来说,每4k配置一个inode
4、一个inode的大小为128字节
5、块为固定大小,支持1024,2048及4096
6、对于单一文件, 若块大小为1024则最大容量为16G,若块大小为4096则
最大容量为2T
7、对于整个分区,若块的大小为1024则最大容量为2T,若块大小为4096则
最大容量为32T
8、文件名最长为255个字符,完整文件名长达4096个字符
载入点一定是目录,而不是文件,
查看linux支持的文件系统
ls -l /lib/moudules/'uname -r'/kernel/fs
系统当前启用的文件系统:
cat /proc/filesystems
文件系统的简单操作
磁盘与目录容量
df 选项 文件名
选项:
-a 列出所有的文件系统,包括系统特有的/proc等文件系统
-k 以kb为单位显示各文件系统
-m 以mb为单位显示各文件系统
-h 自动设置单位显示各文件系统
-H M=1000K 取代M=1024K的设置
-T 连同该分区的文件系统的名称一起列出
-i 不用硬盘容量,而用inode数量表示
du
选项:
-a 列出所有文件与目录容量,因为默认仅统计目录下面的文件
-h 以人们易读的容量格式(G/M)显示
-s 列出容量,不列出每个目录占用的容量
-k 以kb为单位显示
-m 以mb为单位显示
ln 链接文件 ln 源文件 目标文件
硬链接的限制:不能跨文件系统 不能链接目录
选项:
如果不加任何参数,那么创建的就是硬链接
-s 创建符号链接
-f 如果目标文件存在,就主动将目标文件直接删除后再建立
磁盘的分区,格式化,检验与载入
分区:fdisk(仅root)
参数:
-l 将会把整个系统内能所搜索到的分区全部列出来
m 帮助
d 删除分区
n 新增分区
p 列出当前分区
q 不存储离开
w 写入分区表后离开(危险)
sector 扇区
cylinders 柱面
新增分区
e扩展分区 l逻辑分区 p主分区
磁盘格式化
mke2fs 选项 设备名称
选项:
-b 可以设置每个块的大小,支持1024,2048,4096等
-i 给一个inode多少容量
-c 检查磁盘错误,仅执行一次-c会执行快速检测,
如果执行-c -c会进行读写测试
-L 后面可以接卷标
-j 本来mke2fs默认是ext2加上-j就会加上日志,成为ext3
制作启动软盘
mkbootdisk --device /dec/fd0 'uname -r' 其中uname为当前
linux内核版本
软盘低级格式化
fdformat
磁盘检查
fsck (虚拟机无法测试,原因未知)
参数:
-A 按照/etc/fstab的内容,将所有设备都扫描一次
-a 自动检测有问题的区,不用一直按y
-r 一直让用户决定是否修复
-y 与a相同,如果a不能用可以尝试这个
-c 可以检测过程中使用长条图来显示当前进度
-f 强制检查
badblocks 检查硬盘或软键盘有误坏轨
-s 显示进度条
-v 可以再屏幕上看到进度
-w 写入测试,不建议使用
sync 将系统暂存于内存中的数据保存到硬盘中
磁盘的载入与卸载
mount ######虽然软盘已经不用了上面的命令用到的很少,但是这个命令必须记住,很有用,j具体用法看最后,最重要的东西放到最后
选项:
-a 按照/etc/fstab的内容,将所有相关磁盘都挂上来
-n 略过写入mtab的操作
-L 系统除了可以用设备名称号之外,还可以利用卷标来载入
-t 支持的格式就写在这里
-o 后面可以加一些额外的参数
ro,rw: 此分区只能读,或可写
async,sycn:此分区为同步(sync)或异步(async)写入,
默认异步
auto,noauto:允许此分区以mount -a的方式自动载入
dev,nodev: 是否允许在此分区建立设备文件
suid,nosuid:是否允许此分区包含suid/sgid格式的文件
exec,noexec:此分区是否允许拥有可执行二进制文件
user,nouser:是否允许此分区执行用户载入
unmount 卸载设备文件
修改硬盘参数(这一部分我反正是不大明白)
mknod 设备名称 [bcp] [major] [minor]
参数:
设备种类:
b:设置设备名称为一个存储外部设备文件,例如硬盘
c:设置设备名称为一个外部输入设备文件, 如鼠标
p:设置设备名称为一个FIFO文件
major 主设备代码
minor 次设备代码
e2label 设备名称 新的label名称 修改磁盘的表头数据
tune2fs
选项:
-j 将ext2的文件系统转化为ext3的文件系统
-l 将超级块中的数据读出来
-L 修改卷标,类似于e2label
hdparm
载入软盘
mount -t ext2 /dev/fd0 /media/floppy
mount -t vfat /dev/fd0 /media/floppy
unmount /media/floppy
注意:拔软盘之前一定要卸载该该软盘,否则会一直报错
载入windows磁盘
mount -t vfat /dev/hda1 /mnt/win98
mount -t vfat -o iocharset=cp950 /dev/hda1 /mnt/win98 #正确显示中文
载入U盘
mkdir /mnt/usb
mount -t vfat /dev/sda1 /mnt/usb #假设U盘是fat格式
设置启动载入(到/etc/fstab里面去设置)
知道卷标就可以使用;LABEL=(your label name) 如果没有,那么直接写路径
使用dump进行系统备份
是否以fsck检验分区
0表示不要检验,1表示要检验,2表示要检验,不过1较早被检验
建立虚拟内存
建立虚拟内存设备
方法1:
直接加一块硬盘,将其中某个区划分为swap的文件系统
利用fdisk /dev/hd[a-d] 先建立一个分区,简单来说,就是
先建立一个分区,然后将分区的ID改为82,也就是虚拟内存的
磁盘文件格式代码
使用mkswap /dev/hd[a-d][1-16] 将刚刚建立的分区格式化为swap文件格式
启动swap swapon /dev/hd[a-d][1-16]
如果需要关闭,可以使用swapoff
方法2:
使用dd建立swap文件
使用mkswap将swap文件格式格式化为虚拟内存的文件格式
使用swapon来启动该文件,使其成为虚拟内存
使用swapoff来关闭该文件
例如:
1 dd if=/dev/zero of=/tmp/swap bs=4k count=16382
2 mkswap /tmp/swap
3 free
4 swapon /tmp/swap
感想:
这一章下来,感觉自己蒙蒙的,可能是硬盘这一块了解的不够多,另外书是05年出版的,好多地方已经显得...,系统和书上的系统版本上面有差距,等等原因导致这块很是不理想,新版的已经到手了,等最新版的书的笔记吧!