第30周-鸟哥的Linux私房菜基础篇第三版-第八章、Linux 磁盘与文件系统管理
来源:互联网 发布:服务器主流软件 编辑:程序博客网 时间:2024/05/01 05:26
权限与属性放在——inode;
实际数据放在——block;
记录文件系统整体信息——superblock
Ext2——索引式文件系统
区块群组(block group)的六个内容:
a、date block:资料区块;
b、inode table:inode表格 每档一个inode,固定128bytes 12直接1单1双1三间接 = 12+256+256^2+256^3 K= 16GB
所以,当文件系统将 block 格式化为 1K 大小时,能够容纳癿最大档案为 16GB;
c、Superblock:超级区块;通常只有第一个block group会有,其它若有只是为了备份而已;
d、Filesystem Description:文件系统描述说明;
e、block bitmap:区块对照表 区分出空的block,以便使用;
f、inode bitmap:inode对照表,记录使用与未用的inode号码。
2、查询每个区段与superblock的信息
df 叫出目前挂载装置 前半部分superblock 后半部分block group
dumpe2fs /dev/hdc2 结果有Group 0-N ,数据多
3、inode号码的查询:
ls -li 结果的第一列
环境:
ll -d / /bin /boot /proc /lost+found /sbin
结果/proc不占硬盘,其在内存中,而/bin与/sbin目录也都不是1024的倍数;
档案:若一个block有4 Kbytes,要建立100 Kbytes档案,则会分配1个inode与25个block,但因每个inode 只有12个直接指向,故需多一个block作为区块号码记录!
4、挂载点信息——找到/ inode——/ block——找到读取档案的inode号码——读取block数据
例:ll -di / /etc /etc/passwd
文件系统最顶层的inode一般为2。
5、inode table与block table称为数据存放区域,而inode bitmap、block bitmap及superblock被称为中介数据。
6、日志式文件系统:解决文件系统不一致的情况,可无需如ext2一样格式化。
7、mount point:挂载点。
文件系统与目录树结合的动作称为[挂载];
8、查看Linux支持哪些文件系统:
ls -l /bin/modules/$(uname -r)/kernel/fs
系统目前已加载到内存中支持的文件系统:
cat /proc/filesystems
9、Linux VFS(Virtual Filesystem Switch):Linux核心通过VFS来管理文件系统。
挂载点一定是目录,该目录为进入该文件系统的入口;
所以,任何文件系统需[挂载]到目录树的某个目录后,才可使用该文件系统。
10、df -[ahikHTm] :列出整体使用量;i用inode表示、h是易读的容量格式。
du -[ahskm]:评估使用量; s表示总量而不列出各目录占用容量;
注意:根目录的剩余容量剩下0时,将无法存入,哪怕硬盘还要容量。
当用df -a时,出现 /proc挂载点为0,因为其挂载在内存中,故不占硬盘空间。
/shm是内存虚拟的硬盘空间。
例:du -sm /* 其中*表示每个目录。
du 这个挃令其实会直接到文件系统内去搜寺所有癿档案数据,而df不会。
想要列出某目录下的全部数据,可加选项 -S。
扩展阅读 Ext2/Ext3 文件系统:http://linux.vbird.org/linux_basic/1010appendix_B.php
11、实体链接与符号链接:ln
a、Hard link,实体链接:每个档案一个inode,档案内容由其记录指向。
b、读档需经目录记录文件名指向inode号码读取;
即,文件名——目录;档案——inode。
例:ln /etc/crontab . 建立实体链接指令
ll -i /etc/crontab /root/crontab
注意:Hard link不能跨Filesystem,且不能link目录;
Symbolic Link:符号链接,即快捷方式。
建立一个独立的档案,读取指向link的档名。
例:ln -s /etc/crontab crontab2
ll -i /etc/crontab /root/crontab2 这两个指令都错误?
ln -[sf] 来源文件 目标文件;
例:cd /tmp
cp -a /etc/passwd .
du -sb;df -i .
将passwd制作成passwd-hd档案:
ln passwd passwd-hd
du -sb;df -i .
建立符号链接:
ln -s passwd passwd-so
ls -li passwd*
12、目录的link数量:
例:ls -ld /tmp
mkdir /tmp/testing1
ls -ld /tmp
ls -ld /tmp/testing1
结果:/tmp的link多1,/tmp/testing1的link为2,而非1。
13、磁盘的分割、格式化、检验与挂载(挂载点即目录):
磁盘分区:fdisk -l 装置名称
例:df / 找出磁盘文件名
fdisk /dec/sda4 (本机硬盘位SATA)
(出现Command(m for help):)
m 显示出很多指令 (其中q不存离开,w存后离开)
p 装置文件名device、开机boot、分割槽start与end、blocks、ID与system
查阅目前系统的所有partition:
fdisk -l
注意:fdisk只有root才能执行!!!
14、删除磁盘分区槽:
fdisk /dev/sda
Command(m for help):p 先了解整个分割表情况
Command(m for help):d
Parttion number(1-5):4 选择要删除的
Command(m for help):q 退出
新增一个Primary的分隔槽:
Command(m for help):n
p 输入p
Partition number(1-4):4
[Enter]
+512
Command(m for help):p
新增一个Extended分隔槽:
n
e
1
[Enter]
[Enter]
p
新增逻辑分隔槽:(试一试增加2G)
n
l (L的小写)
[Enter]
+2048
p
q 退出
partprobe 强制让核心重新捕捉一次partition table 可保存后不用重启。
15、磁盘格式化:mkfs
# mkfs -t ext3 /dev/sda5
mkfs [tab][tab] 显示mkfs支持的文件格式
mke2fs:mke2fs [-b block大小] [-i block大小] [-L 标头] [-cj] 装置
例:mke2fs -j -L "lshkinger1987_logical" -b 2048 -i 8192 /dev/sda6
文件表头设定,此处block指定为2048,每8192bytes分配一个inode,-j为日志系统。
16、磁盘检验(检查与修正文件系统错误的指令,需系统出现大问题才使用):fsck、badblocks,类似windows的scandisk
fsck [-t 文件系统] [-ACay]装置名称
例:fsck -C -f -t ext3 /dev/hdc6
man e2fsck 可找到更多选项(执行fsck指令,是呼叫e2fsck软件)
badblock -[svw]装置文件名
例:badblock -sv /dev/sda5 效果与mke2fs -c /dev/sda5 一样,所以很少用到
17、挂载:mount -a [-l] [-t 文件系统] [-L Label] [-o 额外选项][-n]
例:挂载Ext2/Ext3文件系统
mkdir /mnt/sda6
mount /dev/sda6 /mnt/sda6
df
需要挂载测试的档案:/etc/filesystems 系统指定的测试挂载的类型和/proc/filesystems 系统加载的文件系统类型
Linux文件系统支持的驱动程序在:/lib/modules/$(uname -r)/kernel/fs/
挂载CD或DVD光盘:
mkdir /media/cdrom
mount -t iso9960 /dev/cdrom /media/cdrom 指定-t iso9960挂载
mount /dev/cdrom /media/cdrom 系统测试挂载
以上这两个挂载指令用一个即可。
df
18、格式化与挂载软盘:
mkdir /media/floppy
mount -t vfat /dev/fd0 /media/floppy
df
挂载随身碟:
fdisk -l
mkdir /mnt/flash
mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash
df
参考学习:NTFS 文件系统官网:Linux-NTFS Project: http://www.linux-ntfs.org/
CentOS 5.x 版癿相关驱劢程序下载页面:http://www.linux-ntfs.org/doku.php?id=redhat:rhel5
19、重新挂载根目录与挂载不特定目录:mount -o remount,rw,auto /
例:将/home这个目录暂时挂载到/mnt/home底下
mkdir /mnt/home
mount --bind /home /mnt/home
ls -lid /home/ /mnt/home 结果不一样啊 ?
mount -l
将装置档案卸除:
umount [-fn] 装置文件名 (-f强制卸除 -n不更新)
注意:需要卸除后,才能退出光盘、软盘、USB等设备。
若当前的装置无法卸除,可用cd /,即回到根目录,再用mount
20、Lable name进行挂载:
dumpe2fs -h /dev/sda6
mount -L "XXXXX" /mnt/sda6
21、磁盘参数修订:mknod 装置文件名 [bcp][Major][Minor] (主要及次要装置代码)存储/输入/FIFO档案
更多核心支持的硬件装置代码 (major, minor) 请参考官网的连结:
http://www.kernel.org/pub/linux/docs/device-list/devices.txt
ll /dev/sda*
mknod /dev/sda7 b 8 7
建立FIFO档案:档名为/tmp/testpipe 操作完要删除这个档案,它不一般,不可随便放置。
mknod /tmp/testpipe p
ll /tmp/testpipe
22、修改文件系统标头Label名称:e2label 装置名称 新的Label名称
dumpe2fs -h /dev/sda6
e2label /dev/sda6 "my_test"
dumpe2fs -h /dev/sda6
tune2fs: [-jlL]装置代号 (-l读出superblock数据/-j将ext2转为ext3/-L修改Label)
23、hdparm [-icdmXTt] 该指令对SATA接口几乎没用途。
hdparm -Tt /dev/sda 测试硬盘的读取效能 找不到hdparm指令?
24、设定开机挂载:/etc/fstab及/etc/mtab
/etc/fstab档案内容的六个字段:
1、Label;2、mount point;3、filesystem;
4、文件系统参数;5、能否被dump备份指令作用(1or0);6、是否以fsck检验扇区(0/1/2)。
例:/dev/sda6每次开机自动挂载到/mnt/sda6
nano /etc/fstab nano找不到?
df
救急:/etc/fstab 输入癿数据错误,导致无法顺利开机成功
mount -n -o remount,rw
25、特殊装置loop挂载 (映像档不可录挂载使用)
挂载光盘/DVD映像文件:
mkdir /mnt/centos_dvd
mount -o loop /root/centos5.2_x86_64.iso /mnt/centos_dvd
df
ll /mnt/centos_dvd
umount /mnt/centos_dvd/
26、建立大档案以制作loop装置档案:程序dd
dd if=/dev/zero of=/home/loopdev bs=1M count=512
mkfs -t ext3 /home/loopdev
挂载:
mount -o -loop /home/loopdev /media/cdrom/
df
27、内存置换空间swap的建置:
1、fdisk 分割磁盘;
2、格式化;
3、swap装置启动;
4、观察:free指令。
例:fdisk /dev/sda
n
[Enter]
+256M
p
t (修改系统ID)
7
82 (改成swap的ID)
p
w
partprobe
开始建置swap格式:
mkswap /dev/sda7
swapon /dev/sda7
free
swapon -s
mkswap /tmp/swap 将文件格式化为swap格式
swapoff /tmp/swap 关掉swap file
28、当block为1024时,boot sector与superblock各占用一个block,故前者独立于superblock外面,此时,前者在0号,后者在1号中,若block为2k或4k,则superblock也在0中。
29、磁盘空间的浪费:
ll -s 其中total表示block数量*大小的值
查询某个目彔所耗用癿所有容量:du
du -sb /etc 单位bytes
du -sm /etc 单位Kbytes 结果更大,因为文件系统耗费了资源
30、利用GNU的parted进行分割行为:
parted 装置 指令[参数]
print 分割表
rm [partition] 删除分割
例:列出目前北京的分割表资料
parted /dev/sda print
parted /dev/sda mkpart logical ext3 16.9GB 17.9GB
parted /dev/sda print
parted /dev/sda rm 8
- 第30周-鸟哥的Linux私房菜基础篇第三版-第八章、Linux 磁盘与文件系统管理
- 鸟哥的Linux私房菜基础学习篇(第三版)之第八章:linux磁盘与文件系统管理
- 鸟哥的Linux私房菜(基础篇)- 第八章、Linux 磁盘与文件系统管理
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第8章 Linux磁盘与文件系统管理 笔记
- 第30周-鸟哥的Linux私房菜基础篇第三版-第七章、Linux 档案与目录管理
- Linux鸟哥私房菜学习笔记_第八章Linux磁盘与文件系统管理
- 鸟哥私房菜 第八章 Linux磁盘与文件系统管理
- 鸟哥的Linux私房菜 基础学习篇读书笔记(8):Linux磁盘与文件系统管理(1)
- 鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)
- 鸟哥的Linux私房菜 基础学习篇读书笔记(10):Linux磁盘与文件系统管理(3)
- 第31周-鸟哥的Linux私房菜基础篇第三版-第九章、档案与文件系统的压缩与打包
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第3章主机规划与磁盘划分 笔记
- Linux 磁盘与文件系统管理(鸟哥私房菜)
- 第29周-鸟哥的Linux私房菜基础篇第三版-第三章 主机规划与磁盘分区
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第7章 Linux档案与目录管理 笔记
- 【读书笔记】鸟哥的Linux私房菜---第8章:Linux磁盘与文件管理系统
- 鸟哥的私房菜:Linux磁盘与文件系统原理
- 第32周-鸟哥的Linux私房菜基础篇第三版-第十一章 认识与学习BASH
- ios10上3D touch多个widget的显示
- GeoHash核心原理解析
- FL Studio中该如何实现打开和新建文件
- 一个非常简单的函数为什么会崩溃
- 【LeetCode-Python】292. Nim Game
- 第30周-鸟哥的Linux私房菜基础篇第三版-第八章、Linux 磁盘与文件系统管理
- Android jar生成及其混淆
- 1.2 Android 5.1 源码目录结构与源码阅读相关
- 关于 np.stack
- java解压缩文件工具类
- 預見未來:區塊鏈與數字資產帶給世界的影響
- gesture-imageview.jar使用
- storm 安装启动
- java中的static class