Linux系列6-磁盘管理

摘要

  • Linux文件系统简介
  • 文件系统挂载/卸载(含命令)
  • 磁盘管理命令
  • 打包和压缩工具gzip``tar
  • 安装硬盘和分区的操作

如要下载笔记和代码请到我的github
欢迎访问我的主页查看更多文章。

Linux文件系统简介

  • 目前的电脑几乎都是SATA硬盘,即串口硬盘,在Linux被标识为sd[a-z],分区从1开始,Grub中被表示为hd[0-…],分区从0开始标识。

  • 文件系统:是一种对物理空间的组织方式,通常在格式化硬盘时创建

    • Windows下,有NTFS和FAT两种文件系统;
    • Linux下:
      | 文件系统 | 简 介 |
      | ext3fs(2nd Extended File System) | 过去很长一段时间是Linux的主流文件系统
      目前已被ext4取代 |
      | ext4fs(3rd Extended File System) | 是对ext3的扩展和改善,应灾难恢复的需求增加了日志功能
      ext4专门预留一块区域保存日志文件
      当对文件进行写操作时,修改首先写入日志文件,再写入记录标志日志项的结束
      完成以上操作时,才会对文件系统作实际的修改。
      因此可以在系统崩溃后用日志恢复文件系统 |
  • Swap并不是一种文件系统。swap交换分区是一种特殊的硬盘空间,当实际内存不够用时,会将内存中暂时不用的数据放在交换空间中,从而为当前运行的程序腾出足够的内存空间。Windows中这个概念叫“虚拟内存”
    • 操作系统的这种调度使程序可以使用的内存远大于物理内存;
    • 硬盘空间价格比RAM低廉;
    • 但频繁读取硬盘会显著降低系统运行速度。
    • swap分区大小主要取决于物理内存大小(理论上要大于物理内存大小),一般设置为2GB即可。

文件系统挂载(含命令)

  • 对于某些外接设备,还有当你想在Linux下查看Windows分区中的时候,需要手动挂载设备。我以挂载windows中分区为例:
sudo 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/win 
  • Linux中每个设备都被映射为一个特殊文件(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-...]挂载。
    • lsusb:可以列出当前内核已经发现的USB设备。

打包和压缩工具

  • 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 -xvfx表示提取文件;
    • tar -xzvfz选项让tar自动调用gzip程序完成相关操作,先gzip解压缩,再用tar解包;
    • tar -czvf:先tar打包,再gzip压缩;
    • -j:此参数调用bzip2程序;
    • tar命令选项前的-可以省略。
  • dd:转化和复制文件。
    • dd if=/dev/cdrom of=CD.iso:if规定输入端,of指定输出端,将CD内容转化为镜像文件。

安装硬盘和分区(进阶)

  1. fdisk:Linux用于建立/查看分区表的工具,请不要在当前硬盘上实验导致删除整个系统;
    • fdisk -l查看分区表;
    • fdisk /dev/sdb:在指定硬盘上建立分区;
    • 此交互式工具中常用的命令如下:
命令含义
new/n创建新分区
print/p显示当前分区设置
type/t设置分区类型(建立swap时使用)
write/w把分区表写入硬盘

- fdisk在分区完全确定之后,用write才会将设置写入分区表中,否则还可以delete删除分区。
2. 分区表建立完成后用mkfs在各分区上建立文件系统。
3. 用fsck检查文件系统。
4. 将硬盘挂载到目录下,用df测试分区。
5. 对交换空间分区执行mkswp <par>swapon <par>分别进行初始化和激活。
- swapon -s:可以查看当前交换空间分区的信息。、
6. 配置/etc/fstab文件,加入新分区,使开机自动加载文件系统。
7. 如果文件系统出问题,系统将不能正常启动,而会引导进入救援模式,依次进行下述手段:
- fsck检查并修复受损文件系统;
- 如果问题仍在,mkfs重建文件系统;
- 最后尝试fdisk重建分区表。
- 但是,总是可以通过注释掉fstab中对应行解决新建分区后不能正常启动的问题。

参考文献

Linux从入门到精通 刘忆智 著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值