- Linux文件系统简介
- 文件系统挂载/卸载(含命令)
- 磁盘管理命令
- 打包和压缩工具
gzip`
tar`等 - 安装硬盘和分区的操作
如要下载笔记和代码请到我的github。 - 目前的电脑几乎都是SATA硬盘,即串口硬盘,在Linux被标识为sd[a-z],分区从1开始,Grub中被表示为hd[0-…],分区从0开始标识。
Linux文件系统简介
- 文件系统:是一种对物理空间的组织方式,通常在格式化硬盘时创建。
- Windows下,有NTFS和FAT两种文件系统;
- Linux下:
| 文件系统 | 简 介 |
| ext3fs(2nd Extended File System) | 过去很长一段时间是Linux的主流文件系统
目前已被ext4取代 |
| ext4fs(3rd Extended File System) | 是对ext3的扩展和改善,应灾难恢复的需求增加了日志功能
ext4专门预留一块区域保存日志文件
当对文件进行写操作时,修改首先写入日志文件,再写入记录标志日志项的结束
完成以上操作时,才会对文件系统作实际的修改。
因此可以在系统崩溃后用日志恢复文件系统 |
- Swap并不是一种文件系统。swap交换分区是一种特殊的硬盘空间,当实际内存不够用时,会将内存中暂时不用的数据放在交换空间中,从而为当前运行的程序腾出足够的内存空间。Windows中这个概念叫“虚拟内存”。
对于某些外接设备,还有当你想在Linux下查看Windows分区中的时候,需要手动挂载设备。我以挂载windows中分区为例:
1
2
3
4
5
6
7sudo fdisk -l /dev/sda # 查看所有分区,在此查找win的引导分区位置,显示为/dev/sda1
sudo mkdir /mnt/win
sudo mount /dev/sda1 /mnt/win
cd /mnt/win
ls # 就可以看到已经能访问win分区中的内容了
cd ~ # 先退出目录才能进行卸载,否则提示设备忙并拒绝卸载
sudo umount /mnt/winLinux中每个设备都被映射为一个特殊文件(Linux中一切都是文件),称为“设备文件”,对设备的操作通过读写文件实现。
- Linux把所有的设备文件都放在/dev目录下。
- 因此文件系统挂载可以这么理解:/dev下记录了所有存在的物理设备,但是只有挂载到Linux目录下,这些文件才能被访问。
mount
:文件系统挂载命令,常用格式mount <source> <directory>
,mount -r
:以只读模式挂载文件系统;mount -w
:以可读写模式挂载设备。
- 系统启动时要挂载的文件系统信息在
/etc/fstab
文件中规定,依次包括这些项:- 用于挂载每个文件系统的UUID(Universally Unique Identifier,通用唯一标志符,一个128bits数字,用于唯一确定互联网上的一件东西),此处用于指代设备名/分区;
- 挂载点;
- 文件系统类型;
- 各种挂载参数;
- 备份频度;
- 重启动过程中文件系统的检查顺序。
umount
:卸载文件系统,Linux规定文件系统只有在没被使用时才可以被卸载。umount -r
:指导umount在无法卸载文件系统的情况下,采用只读方式重新载入。
df
:收集和整理当前已挂载文件系统的重要统计数据。df -t
:用于显示特定文件系统,如df -t ext4
。
fsck
:检查和修复文件系统。对于小的损坏可以很好地解决问题,可以快速执行检查并将日志回滚到上一次正常状态中,但是存在风险。fsck -p
:根据fstab文件确定检查哪些文件系统,按其中指定的顺序升序检查。通常会在硬盘启动时自动执行。
mkfs
:在目标盘上建立文件系统(即格式化)。常用格式mkfs [-t] [fs-options] 。 mkfs -c
:用于检查制定设备上损坏的块,如sudo mkfs -t ext4 -c /dev/sdb1
- 硬盘分区在格式化之前必须先卸载。
- Linux会将USB设备识别为第一个没有被硬盘占用的SCSI设备,因此可以从
/dev/sd[a-z][1-...]
挂载。 gzip
:Linux下使用最广泛的压缩/解压缩工具,gzip会给文件加上gz
扩展名;.tar.gz
是Linux世界最流行的压缩文件格式,即首先用tar打包,再用gzip压缩的文件格式。压缩后会删除原来的文件。gzip filename.tar
就完成了对文件的压缩;gzip -d
:压缩文件解压;gzip -l
:查看压缩效果;gzip -t
:测试压缩文件的完整性。gunzip
:也是解压缩工具。
bzip2
:以压缩速度为代价,提供比gzip更高的压缩率。bzip2
的使用方法基本和gzip
一致,压缩后文件带.bz2
后缀。bzip2 -d
/bunzip2
:用于解压缩文件;bzip2 -tv
:检查文件完整性并返回信息。
tar
:Linux中最著名的文件打包工具,读取多个文件和目录,并将它们打包成一个文件。并不删除原来的文件。tar -cvf <target> <source>
:c
指导创建归档文件,v
用于现实命令执行过程,f
制定归档文件名,余下参数指定要打包的文件和目录;tar -xvf
:x
表示提取文件;tar -xzvf
:z
选项让tar自动调用gzip程序完成相关操作,先gzip解压缩,再用tar解包;tar -czvf
:先tar打包,再gzip压缩;-j
:此参数调用bzip2程序;- tar命令选项前的
-
可以省略。
dd
:转化和复制文件。
fdisk
:Linux用于建立/查看分区表的工具,请不要在当前硬盘上实验导致删除整个系统;fdisk -l
查看分区表;fdisk /dev/sdb
:在指定硬盘上建立分区;- 此交互式工具中常用的命令如下:
命令 | 含义 |
---|---|
new/n | 创建新分区 |
print/p | 显示当前分区设置 |
type/t | 设置分区类型(建立swap时使用) |
write/w | 把分区表写入硬盘 |
fdisk
在分区完全确定之后,用write
才会将设置写入分区表中,否则还可以delete
删除分区。- 分区表建立完成后用
mkfs
在各分区上建立文件系统。 - 用
fsck
检查文件系统。 - 将硬盘挂载到目录下,用
df
测试分区。 - 对交换空间分区执行
mkswp <par>
和swapon <par>
分别进行初始化和激活。
- 分区表建立完成后用
swapon -s
:可以查看当前交换空间分区的信息。、- 配置/etc/fstab文件,加入新分区,使开机自动加载文件系统。
- 如果文件系统出问题,系统将不能正常启动,而会引导进入救援模式,依次进行下述手段:
fsck
检查并修复受损文件系统;- 如果问题仍在,
mkfs
重建文件系统; - 最后尝试
fdisk
重建分区表。 - 但是,总是可以通过注释掉fstab中对应行解决新建分区后不能正常启动的问题。
参考文献
Linux从入门到精通 刘忆智 著