Linux文件系统操作与管理全解析
立即解锁
发布时间: 2025-08-12 00:20:46 阅读量: 12 订阅数: 18 


Linux系统管理核心技能指南
# Linux文件系统操作与管理全解析
## 1. 分区编辑与验证
在编辑完分区表后,可使用`p`命令查看分区表,再用`v`命令验证其是否正常。`v`命令可能会报告磁盘存在未分配扇区,这是正常现象,反映了标准PC访问磁盘方法导致的扇区损失。你应记录分区编号及其用途,以免遗忘这些细节。当对新的分区方案满意后,输入`w`将更改写入磁盘并退出。
需要注意的是,Linux的`fdisk`在输入`w`命令之前不会更改磁盘上的任何结构。若创建了不可用的磁盘结构并想重新开始,可输入`q`退出而不保存更改,再次启动`fdisk`时,将看到与初始相同的条件。
## 2. 创建文件系统
文件系统并非完全空白,即使不包含实际文件,其正常运行也依赖于某些关键组件。这些初始数据结构包括指向根目录的指针、文件系统用于分配空间的数据结构、引导扇区代码,以及操作系统或文件系统所需的一些文件或目录(如每个ext2文件系统上都会出现的`lost+found`目录)。将这些核心数据结构写入磁盘的过程有时被称为格式化磁盘,但这个术语在微软世界中存在歧义,因为它也可指创建磁盘机制用于定位单个扇区的新磁标记。为避免歧义,在Linux世界中,写入扇区标记的过程通常称为低级格式化,而布局初始文件系统数据结构的过程称为高级格式化或创建文件系统。
对于软盘,DOS和Windows的`FORMAT`命令可同时执行低级和高级格式化,若已完成低级格式化则可能跳过该步骤。在Linux中,`fdformat`程序可对软盘进行低级格式化。在任何操作系统下,都需使用特殊实用程序对硬盘和大容量可移动磁盘进行低级格式化,这些实用程序有时会集成到BIOS中,尤其是对于SCSI磁盘。不过,你不太可能需要对硬盘进行低级格式化。
在Linux中,每个文件系统都有自己的创建实用程序,通常命名为`mkfs.fsname`,其中`fsname`是文件系统的代码,例如`mkfs.ext2`用于创建ext2或ext3文件系统,这些实用程序也可能有其他名称,如`mke2fs`。`mkfs`实用程序是所有这些特定文件系统创建程序的前端,其命令语法如下:
```plaintext
mkfs [−t fsname] [options] device [size]
```
该命令的选项如下:
| 选项 | 说明 |
| ---- | ---- |
| `-t fsname` | 指定文件系统类型,`mkfs`将调用`mkfs.fsname` |
| `options` | 可将特定于文件系统的选项传递给实际创建文件系统的程序,具体选项因文件系统而异,可查看`mkfs.fsname`的手册页获取详细信息。常见选项包括:<br> `-c`:检查设备是否存在坏块;<br> `-l filename`:从`filename`读取已知坏块列表;<br> `-v`:在文件系统创建过程中显示额外信息 |
| `device` | 这是唯一真正必需的参数,用于指定在哪个设备上创建文件系统,如`/dev/sdb1`或`/dev/fd0` |
| `size` | 可指定创建特定大小的文件系统,大小以通常为1024字节的块为单位。若省略此参数,程序将创建一个填满分区或设备的文件系统 |
Red Hat Linux包含用于ext2fs/ext3fs、ReiserFS、Minix文件系统和FAT的文件系统创建实用程序(FAT工具名为`mkfs.msdos`,由于普通FAT和支持长文件名的VFAT在文件系统创建时没有区别,因此可使用该实用程序创建VFAT文件系统)。此外,`Mtools`包包含另一个FAT文件系统创建程序,`HFS Utils`包包含用于创建Macintosh HFS文件系统的程序,`JFS`和`XFS`项目也有自己的`mkfs.fsname`实用程序。除FAT外,Linux中用于创建大多数非Linux文件系统的实用程序很少。例如,以下两个命令都可在软盘上创建FAT文件系统:
```plaintext
# mkfs.msdos /dev/fd0
# mformat a:
```
如果你想在软盘或其他可移动介质上使用ext2fs,可使用`mkfs.ext2`的`-m 0`参数。`-m`参数指定为根用户保留的磁盘空间百分比,对于可移动磁盘,可安全地将此百分比设置为0,但对于大多数磁盘分区,尤其是根(`/`)分区,最好将其保留为默认值5。
## 3. 添加磁盘
随着系统的发展,文件会不断积累,文件大小也会随时间增加。例如,实时视频文件可能轻松占用数GB的磁盘空间,而仅仅十年前,个人生产力应用程序通常只占用KB级别的空间。为应对这种情况,你可能想为已使用一段时间的现有计算机添加新硬盘。
如今销售的大多数x86计算机使用EIDE磁盘,这些磁盘价格便宜且易于找到,但存在一个缺点:典型计算机通常只能支持四个EIDE设备。由于常见的附加设备(如CD - ROM驱动器、磁带备份驱动器和大容量可移动介质驱动器)也使用EIDE接口,你可能只能使用一两个EIDE硬盘。若超出此限制,你要么添加另一个EIDE控制器,要么添加SCSI适配器。SCSI适配器可根据SCSI变体托管7或15个设备,且SCSI硬盘的性能通常优于EIDE硬盘,但SCSI磁盘的价格通常比同等的EIDE设备更贵。在购买新磁盘之前,你应检查当前的磁盘设备清单,以确定购买哪种类型的设备。
实际添加磁盘时,前面概述的分区和文件系统创建过程在软件配置方面至关重要。根据磁盘的预期用途,你可能还想将一些文件传输到新磁盘。总体而言,添加新磁盘涉及以下步骤:
1. 检查硬件并决定磁盘类型和型号。
2. 添加磁盘硬件,注意EIDE主/从状态、SCSI终端和ID等特性。
3. 以适合系统的方式对磁盘进行分区。
4. 在新磁盘的分区上创建文件系统。
5. 挂载新磁盘的分区。
如果你想传输数据,可在步骤4和步骤5之间进行。通常的做法是选择一个要移动到新磁盘的目录,例如将`/opt`移动到新磁盘,具体步骤如下:
1. 执行上述步骤1至4。
2. 将新分区挂载到临时位置,这可以是现有的挂载点(如`/mnt/floppy`),也可以是专门为此目的创建的挂载点。以下步骤假设使用`/mnt/floppy`作为临时挂载点。
3. 切换到要移动的目录的根目录,如`cd /opt`。
4. 输入以下命令将所有文件复制到新文件系统:
```plaintext
# tar clpf − . | (cd /mnt/floppy; tar xpvf −)
```
需要注意的是,`-l`参数可防止`tar`进入挂载在源目录上的文件系统。若要将两个现有文件系统传输到一个新文件系统,需省略此参数。在步骤4中包含此参数是因为省略它有时会导致问题,特别是要小心不要复制`/proc`文件系统,它是一个包含系统信息的伪文件系统,复制它既浪费又可能危险。另一个潜在的陷阱是复制挂载了目标文件系统的文件系统,若未指定`-l`参数,这将导致无限循环。这两个问题在尝试移动根(`/`)文件系统时最容易出现。
5. 尽可能检查新分区是否包含应有的文件。
6. 从原始位置删除文件,例如输入`rm -r /opt/*`。但此步骤可能非常危险,若文件复制过程中出现错误,删除原始文件将导致数据丢失。你可以暂时跳过此步骤,若这样做,可将新分区挂载在原始目录的内容之上,之后将访问新分区而非旧目录。当确认一切正常后,暂时卸载新分区,再回来执行此步骤。
7. 从临时位置卸载新分区。
8. 将新分区挂载到原来保存文件的(现在为空的)目录。
0
0
复制全文
相关推荐









