Linux 磁盘与文件系统管理

时间:2022-10-26 18:29:47

一、EXT2 文件系统

     1.  硬盘组成与分区

          (1) 扇区(Sector)为最小的物理存储单元,每个扇区为 512 bytes;

          (2) 将扇区组成一个圆,那就是柱面(Cylinder),柱面是分区(partition)的最小单位;

          (3) 第一个扇区最重要,里面有硬盘主引导记录(Masterbootrecord,MBR)及分区表(partition table),

                   其中MBR占有 446 bytes,而 partition table 占有64 bytes;

          (4) 各种接口的磁盘在 Linux 中的文件名分别为:

                   /dev/sd[a-p][1-15]:为 SCSI,SATA,USB,Flash 等接口的磁盘文件名;

                   /dev/hd[a-d][1-63]:为 IDE 接口的磁盘文件名。

     2.  文件系统特性

          (1) 一个可被挂载的数据为一个文件系统而不是一个分区。

          (2) 文件系统通常会将这两部分的数据分别存放在不同的块,权限与属性放置到 inode 中,实际数据则放置到   

                     data  block 块中。

          (3) super block:记录此文件系统的整体信息,包括 inode/block 的总量、使用量、剩余量、以及文件系统

                                      的格式与相关信息等。

          (4) inode:记录文件的属性,一个文件占用一个 inode,同时记录此文件的数据所在的 block 号码。

          (5) block:实际记录文件的内容,若文件太大时,会占用多个block。

     3.  Linux 的 Ext2 文件系统(inode)

          (1) 文件系统最前面有一个启动扇区(boot sector),这个启动扇区可以安装引导装载程序。

          (2) data block(数据块):是用来放置文件内容的地方,在 Ext2 文件系统中所支持的 block 大小有

                                                   1KB ,2KB,及4KB三种而已。 

          (3) 找出我的根目录磁盘文件名,并查看文件系统的相关信息

                          df  ——这个命令可以调出目前挂载的设备

                          dumpe2fs  /dev/sd2 ——查询每个区段的 superblock 信息。

         (4) 查看文件所占用的 inode 号码: ls -i

      4.  挂载点(mount point)的意义

            (1)将文件系统与目录树结合的操作称为 挂载。

            (2)挂载点一定是目录,该目录为进入该文件系统的入口。

二、文件系统的简单操作

      1.  磁盘与目录的容量:df , du

           df :列出文件系统的整体磁盘使用量。

           du:评估文件系统的磁盘使用量(常用于评估目录所占容量)。 

           (1)将容量结果以易读的容量格式显示出来:  df -h;

           (2)将/etc下面的可用的磁盘容量以易读的容量格式显示: df -h /etc;

           (3)将目前各个分区当中可用的 inode 数量列出: df -ih;

           (4)检查根目录下面每个目录所占用的容量: du -sm /*; 

       2.  连接文件:ln

           (1)hard link(硬连接或实际连接):只是在某个目录下新建一条文件名连接到某 inode 号码的关联记录而已。

           (2)symbolic link(符号连接,快捷方式):再创建一个独立的文件,而这个文件会让数据的读取指向它连接的

                                                                     那个文件夹的文件名。

           (3)将/etc/passwd复制到/tmp下面,并且查看inode与block

                   cd /tmp

                   cp -a /etc/passwd .

                   du -sb       ——计算整个/tmp下面有多少 bytes。

                   df -i .

            (4)将/tmp/passwd制作hard link成为passwd-hd 文件,并查看文件与容量:

                      ln passwd passwd-hd;

                      du -sb

                      df -i .

             (5)将/tmp/passwd创建一个符号连接

                       ln -s passwd passwd-so

                       ls -li passwd*

三、磁盘的分区、格式化、检验与挂载

        1.  磁盘分区:disk

              fdisk  /dev/sda

        2.  磁盘格式化:mkfs -t ext3 /dev/sda6

        3.  磁盘检验:fsck,badblocks

               fsck -C -f -t ext3 /dev/sda6

               badblocks -sv /dev/sda6

        4.  磁盘挂载与卸载:

                (1)挂载Ext2/Ext3 文件系统

                            mkdir /mnt/sda6

                            mount /dev/sda6   /mnt/sda6

                            df

                (2)挂载CD或DVD光盘

                            mkdir    /media/cdrom

                            mount -t iso9660   /dev/cdrom    /media/cdrom   —— -t iso9660这个光盘的格式

                            mount     /dev/cdrom      /mdeia/cdrom               —— 系统自己去测试挂载

                            df

                (3)格式化与挂载软盘

                            mkfs -t vfat /dev/fd0

                            mkdir /media/floppy

                            mount -t fat /dev/fd0 /media/floppy

                            df

                (4)挂载U盘

                            mkdir /mnt/flash

                            mount -t vfat -o iocharset=cp950 /dev/sda1  /mnt/flash

                            df

                (5)文件卸载umount:

                            umount /dev/sda6

                            umount /media/cdrom

                            umount /mnt/flash

                            umount /dev/fd0

                            umount /mnt/home

                 (6)使用 label name 进行挂载的方法

                            dumpe2fs -h /dev/sda6

                            mount -L "vbird_logical"  /mnt/sda6

            5.  磁盘参数修改

                 (1)mknod

                            mknod /dev/sda10  b  22 10

                            ls -l /dev/sda10

                 (2)e2label

                             将 /dev/hdc6的卷标改成 my_test并查看是否修改成功

                                     dumpe2fs -h /dev/hdc6

                                     e2label /dev/hdc6 "my_test"

                                     dumpe2fs -h /dev/hdc6

                 (3)tune2fs

                             列出 /dev/hdc6的super block 内容 :tune2fs -l /dev/hdc6

                 (4)hdparm

                             测试这块硬盘的读取性能:hdparm -Tt /dev/hdc

四、设置开机挂载

          1.  开机挂载 /etc/fstab 及 /etc/mtab

                   将 /dev/hdc6 每次开机都自动挂载到 /mnt/hdc6

                         nano /etc/fstab

                       写入:/dev/dhc6    /mnt/hdc6   ext3   dufaults    1   2

          2.  特殊设备 loop 挂载

                   ls -l -h /root/centos 5.2_x86_64.iso

                   mkdir /mnt/centos_dvd

                   mount -o loop /root/centos 5.2_x86_64.iso /mnt/centos_dvd

                   df

                   ls -l /mnt/centos_dvd                  

          3.  新建大文件以制作loop设备文件

                   dd  if=/dev/zero  of=/home/loopdev  bs=1M  count=512

                   ls -l /home/loopdev

                   mkfs -t ext3 /home/loopdev

                   mount -o loop /home/loopdev  media/cdrom/

五、交换内存空间(swap)的构建

          1.  使用物理分区构建swap

                   fdisk  /dev/hdc

                   mkswap  /dev/hdc7

                   free

                   swapon  /dev/dhc7

                   free

          2. 使用文件构建 swap

                   dd  if=/dev/zero  of=/tmp/swap bs=1M count=128

                   ls -l -h  /tmp/swap

                   mkswap  /tmp/swap

                   free

                   swapon  /tmp/swap

                   free

                   swapon  -s

                   swapoff  /tmp/swap

                   swapoff  /dev/hdc7

                   free