第8章 磁盘文件与文件系统管理

来源:百度文库 编辑:神马文学网 时间:2024/04/30 01:43:31
一、磁盘的分区、格式化、检验与载入
      1. fdisk -l  #只有root才能执行该命令,把事个系统内能搜索到的设备分区列出来;        fdisk /dev/sda  #使用设备名称时不要加上数字,分区是针对整个磁盘设备而不是某个分区 ;       2. mke2fs -j /dev/sdb5  #将/dev/sdb5格式化为ext3,-j会主动加入日志而成为ext3格式;        1)当然您也可以把分区格式化成其它的文件系统;比如我们把 /dev/sda6格式化为ext3 、ext2、reiserfs、fat32、msdos 文件系统,命令格式如下;         [root@localhost beinan]# mkfs -t ext3  /dev/sda6 
         [root@localhost beinan]# mkfs -t ext2  /dev/sda6
         [root@localhost beinan]# mkfs -t reiserfs  /dev/sda6
         [root@localhost beinan]# mkfs -t fat32   /dev/sda6
         [root@localhost beinan]# mkfs -t msdos   /dev/sda6
          2)mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos mkfs.vfat mke2fs 的介绍;
         我们先说了一个mkfs 工具后,我们再来介绍 mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkdosfs mkfs.msdos mkfs.vfat ,其实mkfs 在执行的命令的时候,也是调用的这个工具,这也是我先把mkfs介绍的主要原因; 通过文件名,我们就知道这些工具是支持什么文件系统;这些命令为我们提供了更多的方便;         [root@localhost beinan]# mkfs.ext3    /dev/sda6     注:把该设备格式化成ext3文件系统
         [root@localhost beinan]# mke2fs -j   /dev/sda6       注:把该设备格式化成ext3文件系统
         [root@localhost beinan]# mkfs.ext2  /dev/sda6       注:把该设备格式化成ext2文件系统
         [root@localhost beinan]# mke2fs    /dev/sda6          注:把该设备格式化成ext2文件系统 
         [root@localhost beinan]# mkfs.reiserfs  /dev/sda6   注:把该设备格式化成reiserfs文件系统
         [root@localhost beinan]# mkfs.vfat   /dev/sda6        注:把该设备格式化成fat32文件系统
         [root@localhost beinan]# mkfs.msdos   /dev/sda6   注:把该设备格式化成fat16文件系统,msdos文件系统就是fat16;
         [root@localhost beinan]# mkdosfs   /dev/sda6         注:把该设备格式化成fat16文件系统,同mkfs.msdos         3. 关于fdisk -l 一些数值的说明;                      Disk /dev/hda: 80.0 GB, 80026361856 bytes,255 heads, 63 sectors/track, 9729 cylinders,Units = cylinders of 16065 * 512 = 8225280          byte,这个硬盘是80G的,有255个磁面;63个扇区;9729个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes=8225.280 K(约为);  
     4. 关于查看硬盘是否完全使用         我们通过 hda的分区表可以看到上一个分区的End的值+1 就是下一个分区的Start 的值;比如 hda2的Start的值是 hda1 的End 的值+1,这证明 hda1 和hda2 中间没有空白分区,是连续的,以此类推;在 hda10,我们看到 End 的值是9729 ,而在fdisk -l头部信息中也有9729 cylinders,证明这个硬盘已经完全划分;
     5. 添加多个硬盘的注意事项          First cylinder (51-125, default 51): 注:这个就是分区的Start 值;这里    First cylinder (51-125, default 51): 注:这个就是分区的Start 值;这里最好直接按回车,如果您输入了一个非默认的数字,会造成空间浪费; Using default value 51 Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:这个是定义分区大小的,+200M 就是大小为200M ;当然您也可以根据p提示的单位cylinder的大小来算,然后来指定 End的数值。回头看看是怎么算的;还是用+200M这个办法来添加,这样能直观一点。用+200M这个办法来添加,这样能直观一点。如果您想添加一个10G左右大小的分区,请输入 +10000M ;       6.修改/etc/fstab 是分区在系统启动是自动挂载,如果 修改了 /etc/fstab 导致os 不能启动, 这个时候需要以root 进入 repair模式, 但是 /etc/fstab 是只读的. 这个时候需要 使用 下面的命令 修改 /etc/fstab . mount -o remount,rw /   ,或者把命令行直接写入 /etc/rc.d/rc.local中也行,讴定完毕务必使用 mount -a 测试诧法正确,并使用df查看挂载情况。
    [root@localhost beinan]# mkdir /mnt/hda5/   注:先创建一个挂载目录;    [root@localhost beinan]# chmod 777  /mnt/hda5/    注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;       7.磁盘检验:     fsck -C -t ext3 /dev/sdc5  #-C在检验过程使用一个长条图显示当前的进度,-t指定不同的文件系统,ext2,ext3,ext4等;     通常只有root用户且系统有问题时才使用这个命令,否则在正常情况下使用此命令可能损坏文件。通常使用该命令的场合是,系统出现大问题,导致linux启动时进入单用户、单机模式进行维护,执行该命令时被检查的分区务必不要载入到系统上,也就是应该在卸载状态。       8.parted分区(fdisk无法支持2B以上的分区)     (1)parted /dev/sda print #列出当前分区,如下:
        [root@www ~]# parted /dev/hdc print        Model: IC35L040AVER07-0 (ide)        Disk /dev/hdc: 41.2GB        <==硬盘接口不型号        <==磁盘文件名不容量        Sector size (logical/physical): 512B/512B <==每个扂区癿大小        Partition Table: msdos        Number Start End        <==分割表形式        Size        Type        File system Flags        1 32.3kB 107MB 107MB primary ext3 boot        2 107MB 10.6GB 10.5GB primary ext3        3 10.6GB 15.8GB 5240MB primary ext3        4 15.8GB 41.2GB 25.3GB extended        5 15.8GB 16.9GB 1045MB logical linux-swap        6 16.9GB 18.9GB 2056MB logical ext3        7 18.9GB 19.2GB 263MB logical linux-swap
       上面是最简单parted 挃令功能简介,你可以使用『 man parted 』,戒者是『 parted /dev/hdc help mkpart 』去查询更详绅癿数据。比较有趣        癿地方在亍分割表癿输出。我们将上述癿分割表示意拆成六部分来说明:       1. Number:这个就是分割槽癿号码啦!丼例来说,1 号代表癿是 /dev/hdc1 癿意忠;       2. Start:起始癿磁柱位置在这颗磁盘癿多少 MB 处?有趣吧!他以容量作为单位喔!       3. End:结束癿磁柱位置在这颗磁盘癿多少 MB 处?       4. Size:由上述两者癿分析,得到这个分割槽有多少容量;       5. Type:就是分割槽癿类型,有 primary, extended, logical 等类型;       6. File system:就如同 fdisk 癿 System ID 乀意。
       (2)parted /dev/sda mkpart logical ext3 19.2G 19.7G #该命令立即生效,使用时特别注意。另外也可以parted进入对话模式,根据提示逐步完成分区。主要命令有,mkpart(分区)、print(打印列表)、rm(删除)等。 二、文件系统的挂载    1.mount /dev/sdb1 /home/kungfu/usb  #挂截U盘     umount -f /dev/sdb1         #强制卸载     可使用df -l或mount -l来查看是否卸载成功    2.有关/etc/fstab文件的说明      (1)根目录/必须是挂载的,而且一定要先于其他mount point被持载,其它mount point必须为已建立目录,所有mount point在同一时间内只能被挂载一次,所有分区在同一时间只能被挂载一次。     (2)该文件共有六个字段,解释如下:      第一栏,磁盘装置文件名或该装置的label;      第二栏,挂载点;      第三栏,磁盘分区的文件系统;ext3,ntf,vfat等;      第四栏,文件系统参数;defaults同时具有rw,suid,dev,exec,auto,nouser,async等参数;默认使用该参数;      第五栏,能否被dump备份指令作用;0代表不备份,1代表备份,2代表其他不定日期的dump备份动作,通常是0或者1;      第六栏,是否以fsck检验扇区;0不检验,1表示最早检验,2也是检验,不过1会比较早被检验。一般根目录设置为1,其他要检验的文件系统设定为2。     3.挂载ISO文件      mount -o loop /root/centos5.5_x86_32.iso /mnt/centos      umount /mnt/centos  #卸载     4.建立大档案以制作loop装置档案      dd if=/dev/zero of=/home/loopdev bs=1M count=512      ll -h /home/loopdev #查看文件大小      mkfs -t ext3 /home/loopdev      mount -o loop /home/loopdev /media/cdrom #挂载      这个办法可以解决分区不好的情况,/目录过大,其他分区过小。      5.建立SWAP分区(系统安装后)      (1)分区:fdisk /dev/sda,按以下顺序执行n,p,t,7(查看相应分区ID),82(修改为swap ID),p,w,partprobe更新核心。      (2)建立swap格式:mkswap /dev/sda7      (3)查看并加载:free ,swapon /dev/sda7,free