1.16 学习札记

 摘要  内核模块  文件系统管理

  内核模块
      减少内存使用;灵活性;最大化运行时间
          位于/lib/modules/$(uname -r)/目录下
     内核模块工具
      lsmod  列出已装载的模块
      modprobe 可装载和卸载模块
      modinfo 显示任意可用模块的信息
      /etc/modprobe.conf 可用来配置模块
     用udev管理/dev
        udev可管理保存在/dev/目录下的文件
        文件只有在接入相应的设备后才会生成
        文件在设备被拔出后自动删除
      在/dev/中添加/udev条目的正确方法
             在/etc/udev/rules.d中创建新文件
          插入如下说明:
            KERNEL=="sda",NAME="usbkey",SYMLINK="usbstorage"
             用mknod可手动添加文件
               mknod  /dev/usbdevice b 8 0
              mknod 不持久
      用/proc进行内核配置
        /proc 虚拟文件系统,用来显示进程信息、内存资源、硬件设备、内核内存等
        可用来修改网络和内存子系统或者修改内核属性
        修改立即生效
        /proc示例
         只读文件
             /proc/cpuinfo
             /proc/1/*
             /proc/partitions
             /proc/meminfo
        在/proc/sys/下的读写条目
                 /proc/sys/kernel/hostname
                 /proc/sys/net/ipv4/ip_forward 
                 /proc/sys/vm/drop_caches
                 /proc/sys/vm/swappiness
        sysctl:可保持的内核配置
         列出所有当前设置:sysctl -a
         从sysctl.conf 中重新装载 :sysctl -p
         设定一个动态/proc值 :sysctl -w net.ipv4.ip_forward=1
     检测硬件设备
           所有接入设备的快照都有HAL(Hardware Abstraction Layer)管理
           hal-device 以文本模式列出所有设备
           hal-device-manger 在图形窗口中显示所有设备
           lspci和lsusb分别列出与pci和usb总线连接的设备
            
文件系统管理
      在文件系统树中添加新的文件系统
       识别设备
       分区设备(fdisk sfdisk)
       创建文件系统
       在/etc/fstab文件中创建条目
       挂载新的文件系统
   创建分区使用
       fdisk
       sfdisk
       partprobe 重新设置内存中的内核分区表版本

fdisk使用
   # fdisk /dev/sda
   Command (m for help):  在这里按m ,就会输出帮助;
   Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition   注:这是删除一个分区的动作;
   l   list known partition types  注:l是列出分区类型,以供我们设置相应分区的类型;
   m   print this menu  注:m 是列出帮助信息;
   n   add a new partition 注:添加一个分区;
   o   create a new empty DOS partition table
   p   print the partition table 注:p列出分区表;
   q   quit without saving changes 注:不保存退出;
   s   create a new empty Sun disklabel   
   t   change a partition's system id  注:t 改变分区类型;
   u   change display/entry units 
   v   verify the partition table
   w   write table to disk and exit  注:把分区表写入硬盘并退出;
   x   extra functionality (experts only)  注:扩展应用,专家功能;
 创建文件系统
   mkfs
   mkfs.ext2  mkfs.ext3 mkfs.vfat
   可直接调用特定的文件系统工具
    mke2fs [options]  device
       一些有用选项,包括
         -b :以字节为单位指定数据块的大小 (1024 2048 4096)
         -c :在创建文件系统前检查设备的坏块(扇区)
         -i:指定字节/节点比例
         -N:覆盖了默认的对保留文件系统的节点数计算
         -m:指定保留给超级用户的块比例,默认值是%5
         -L:为文件系统设定卷标
         -j:可生成ext3日志节点和文件系统
文件系统标签
    指向设备的另一种方法
    与设备无关  
       e2label special_dev_file[]fslabel
       mount [options] LABEL=fslabelmount_point
   用blkid命令可看到所有设备的标签和文件系统类型
   tune2fs
    调整文件系统参数
     格式一:tune2fs -l <设备名>
     格式二:tune2fs [<选项>] <设备名>
       -j 将ext2文件系统添加为ext3文件系统所需的日志
       -l 列出指定设备的超级块信息
       -L 未指定设备这只卷标
       -m 指定管理员保留区块比例
       -r 指定管理员保留区块的数量
挂载点和/etc/fstab
  配置文件系统体系
  被mount 、fsck和其他程序使用
  系统重启时保留文件系统体系
  可以在设备栏使用文件系统卷标
  使用mount -a 命令挂载/etc/fstab中所有文件系统
    /etc/fatab文件格式
   #device          mount_point   FS_type   options   dump_freq   fsck_order
   LABEL=/mnt/data  /mnt/data     ext3      defaults   0            0
  device:特殊设备文件名或要挂载的文件系统标签
  mount_point :用来访问文件系统的路径
  FS_type :  文件系统类型
  options: 用逗号分开一组选项,(rw,suid,dev,exec,async,acl,uid=,gid=,loop,owner)
  dump_freq:零级别转储频率,1:每天;2:每隔一天;0:从不转储
  fsck_order:0:忽略;1,第一 (根文件系统使用该值);2-9.第二、三等等
   用mount命令挂载文件系统
   mount [options] devicemount_point
   -t vfstype
   -o 选项
   默认选项:rw suid dev exec acl async
   卸载文件系统
    umount [options] device | mount_point
      不能卸载正在使用的文件系统
          使用fuser检查和/终止进程
           fuser -v  mount_point  | fuser -km mount_point
    使用remount选项自动更改挂载的文件系统的选项
       mount -o remount,ro  /data
    mount 示例
    mount -t ext3 -o noexec /dev/hda7 /home
    mount -t iso9660 -o loop /iso/documents.iso  /mnt/cdp_w_picpath
    mount -t vfat -o uid=515,gid=520 /dev/hdc2 /mnt/projX
    mount -t ext3 -o noatime /dev/hda2 /data
      处理交换文件和分区
       基本设置包括:
            创建交换分区或者文件
            使用mkswap 写入特殊文件签名
            在/etc/fatab文件中添加适当条目
            使用swapon -a 激活交换空间
       设定交换分区
         mkswap  /dev/sda6
         swapon -a
         swapon -s 检查交换分区的状态
       设定交换文件’
         dd if=/dev/zero of=/swapfile bs=1024 count=X
               mkswap /swapfile
               swapon -a
       或者写进/etc/fatab