04 文件系统管理 -- 系统

1.系统在初始化时如何识别硬盘

系统在初始化时根据Master Boot Record(MBR)中的信息来识别硬盘, 包括:

  • 可执行文件用来载入操作系统(即MBR中前446bytes的Boot Loader程序)
  • Partiton table(16x4=64bytes)      每个分区表储存以下三个信息:
    1. Partition id    常见的有以下几种
      • 0x5(or 0xf)   -Extended
      • 0x82              -Linux swap
      • 0x83              -Linux
      • 0x8e              -Linux LVM
      • 0xfd               -Linux RAID auto
    2. 分区的起始磁柱
    3. 分区中有多少个磁柱

2.硬盘分区

  • 当四个主分区不够用时,拿其它一个分区作为扩展分区来增加额外的分区.
  • Linux kernel支持的最大分区数
    1. IDE硬盘最多支持63个分区
    2. SCSI硬盘最多支持15个分区
  • 硬盘分区的目的:1. 方便用户分类存放资料 2.提升性能(碎片与缩小搜索文件范围)
                              3.方便磁盘的quota操作  4.方便文件的备份与恢复

3.建立分区

  • 使用fdisk 建立磁盘分区  例: # fdisk /dev/sda    回车后输入m,查看操作帮助  (1个磁柱大小为8M)
  • partprobe    重新初始化kernel在内存中的分区表:因为分区完成后会提示kernel仍使用旧的分区表

4.格式化分区
每个分区包含:引导扇区(boot sector)、superblock及普通数据块,每隔一些数量的block会形成group。其中super block用来记录这个分区总共切成多少块,有多少inode,已经用掉多少个块多少个inode等信息,一旦super block损坏,这个分区将无法使用,所有在一个分区里,每隔一些block就会备份一个superblock.
mke2fs [options] device

  • -b   设定每个datablock是多少bytes (预设为1024bytes=1K)
  • -c   在格式化前检查是否有损坏的块
  • -i   指定每个inode大小
  • -N   设定inode的总数量
  • -m 指定要保留多少百分比的空间给root帐号(默认5%)
  • -L   为分区设卷标
  • -j   格式化成ext3分区

5.将ext2分区转成ext3

ext2和ext3的对比

  • ext2和ext3磁盘格式基本相同,只是ext3会将硬盘的最后一块空间拿来存放journel记录。
    • ext2写入信息到硬盘时,并非马上写入,而是先写到Buffer(缓冲区)里,当Buffer满时才会写入硬盘。
    • ext3同样也是将信息先写到Buffer,当Buffer写满时,要通知资料写入硬盘前会先通知journel.然后才把资料写入硬盘。当信息写入硬盘后还会再次通知journel.
    • 在ext2中,系统在开机时会先检查valid bit(有效位),如果valid bit值为1代表文件系统在关机前有做卸载,即正常关机。值为0就非正常关机。在非正常关机时系统在开机过程中会重新检查硬盘中的资料,这样比较耗时。
    • 而在ext3中,如果出现非正常关机,系统在开机时先检查journel中的记录,得知是否还有尚未完成移动的资料。这样比较省时。
  • tune2fs -j device   --ext2转换到ext3
    dumpe2fs device | more     --查看分区信息
  • ext3 的三种journal模式
    • ordered       --预设模式,只记录Inode table中的信息。
    • journaled    --会记录资料中本身的信息,需要大量空间来做记录。
    • writeback   --不会记录Inode table中的信息,但可能较好的性能。

6. 给分区设卷标

e2label /dev/hda1 yourlabel      --设定hda1分区卷标
e2label /dev/hda1                       --查看hda1分区的卷标

7. mount  和 umount
把磁盘对应到某个目录,对应的那个目录就叫mount point ,这个对应的动作就叫mount。
mount -L LABEL mount_point    使用卷标的方式挂载
mount [-t vfstype] [-o options] device mount_point

  • -t  vfstype(vfat , ext2, ext3, iso9660, etc)   这部分通常不用,Linux kernel自己会判断。
  • -o  options
    • suid   允许使用suid或sgid权限
    • dev    允许建立device files
    • exec , noexec   挂载后可/不可运行里面的可执行文件
    • auto   电脑开机时自动挂载
    • nouser 只允许root挂载
    • async   不同步,即在写入资料时先写在buffer再写入硬盘
    • loop  挂载光盘设备
    • ro       挂载后以只读访问
    • rw
    • remount
  • 在挂载ext2/ext3分区时如果未加参数,系统自动加的参数为
    rw, suid , dev , exec ,auto ,nouser ,async

umount deviceumount mount_point
如果文件系统在使用中就没办法卸载,这时可以使用 fuser 查看谁在使用,并结束进程 .如:
# fuser -v /mnt/win_c        查看
# fuser -km /mnt/win_c     结束对这个文件系统的所有操作

用remount更改已挂载文件系统的属性 ,例;
mount -o remount,ro /mnt/win_c

8. 挂载网络资源
UNIX/Linux 网络资源分两种: NFS(Network file system) 和 SMB
NFS 是Unix/Linux主机之间共享方式
SMB 是unix/linux 和 win间的共享方式
NFS
showmount -e ip                           查看共享资源
mount ip:/shared/dir /mnt/nfs     挂载
SMB
smbclient -L ip -N                          查看
mount //ip/share_name  /mnt/smb -o username=account%password    挂载

9. /etc/fstab
栏位说明
device             mount_point              FS_type            options     dump_freq  fsck_order 
-----------------------------------------------------------------------
LABEL=/                        /                           ext3                 defaults               1 1
LABEL=/home              /home                 ext3                defaults                1 2
LABEL=/boot               /boot                   ext3                defaults                1 2
tmpfs                            /dev/shm             tmpfs              defaults                0 0
devpts                          /dev/pts               devpts        gid=5,mode=620    0 0
proc                              /proc                     proc                defaults                 0 0
LABEL=SWAP-hda9   swap                     swap                defaults                 0 0
-----------------------------------------------------------------------
dump_freq: 0=never  , 1=每天 , 2=2天 ,
fsck_order:开机时检查文件系统的完整性 : 0=忽略不检查, 1=首个,2=第2....,9  如果检查顺序相同就按从上到下的顺序.

10.自动挂载 /etc/auto.master
automounter是一个系统进程,它能够自动挂载并监控目录. 默认自动挂载60秒后卸载,以便降低网络负荷.
举例:
1. 编辑/etc/auto.master ,加入下面一行:
/mnt/nfs        /etc/auto.nfs    --timeout=60
2. /etc/并无auto.nfs文件
cp /etc/auto.misc /etc/auto.nfs
vi /etc/auto.nfs
复制#linux          -ro,soft,intr           ftp.example.org:/pub/linux
粘贴后进行实际情况编辑
栏2的soft:指是指NFS服务器发生故障时会传回错误信息通知使用者
         intr:指允许中断
保存退出
3. service autofs restart      重启automounter的服务

11. ext2和ext3文件系统中可以设定的属性 :它们都支持一些特殊的属性以便控制文件的特性
lsattr       显示文件属性
chattr     改变文件属性
chattr +|-|=attribute[attribute ...] file [file ...]
chattr =  file  [file ..]    拿掉文件设定的所有属性
ext2/ext3文件系统属性

  • A   当文件被修改时,存取的时间记录不变
  • a   使文件只允许做追加,不允许原来的内容被覆盖
  • d  系统在使用dump时,不备份该文件
  • i  使文件永远不变,不能删文件,也不能重命名
  • j  让系统把文件信息记录在ext3的journel里,并忽略ext3挂载成ordered或writeback模式
  • S  当文件被修改时立即做同步动作,写入硬盘.

12. 虚拟内存 :可以用一个分区或一个文件做虚拟内存
基本设定:

  • 建立swap分区或文件,建swap分区时,分区ID设为 82
  • 使用mkswap 命令对swap分区或文件写入特定的标识
  • 在/etc/fstab里加入记录,以便系统挂载swap
  • 如果是swap分区 ,使用命令swapon -a 激活swap分区
    swapon -a命令会读取/etc/fstab,根据fstab文件记录启用所有swap patition
    如果是swap文件 ,语法 swapon swapfile
    swapon -s 检查swap当前使用情况

建立swap文件: # dd if=/dev/zero of=/swapfile bs=1M count=100
说明: dd  命令用来转换并复制文件, if是input file的缩写; of是output file的缩写;
         bs是block size的缩写, count=100建立100个block.


13. 文件系统维护

  • fsck 检查文件系统的完整性(检查前先做umount操作)
  • 检查到有损坏的文件会放到 /lost+found 目录作备份
  • 操作系统发生严重错误时,会以 sulogin 的方式启动
    sulogin的模式下可以照常执行指令.所以在这种模式下还可以修改之前配置错误的文档
    注意:这个模式下的根目录read-only方式挂载, 所以需要重新挂载:
    mount -o remount,rw device
  • tune2fs -j    将ext2文件格式转为ext3
  • dumpe2fs    查看文件系统目前状态
  • sync    将Buffer中的资料写入硬盘,避免不正常关机资料遗失。

14.添加新硬盘

  1. 用fdisk分区
  2. 分区后用partprobe重载分区表
  3. 格式化
  4. 如果要用LABEL表示法,为硬盘添加卷标
  5. 建立挂载点,将硬盘挂载
  6. 写入/etc/fstab让开机自动mount
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值