设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

楼主: 崔凯
收起左侧

Linux配置文档整理-全面解析版

  [复制链接]
 楼主| 发表于 2010-9-10 11:55:40 | 显示全部楼层

RAID+LVM的列举应用

RAID+LVM 应用 /home  ar / 目录
  一、创建分区

  fdisk /dev/sdb

  n

  t #L文件系统类型更改为 RAID

  fdisk /dev/sdc

  n

  t

  fdisk /dev/sdd

  n

  t

  #如果当前磁盘正在使用,需要重起系统。

  二、创建RAID级别5的磁盘阵列

  cp /usr /raidtools/raid5.conf /etc/raidtab

  vi /etc/raidtab

  查找device 修改磁盘标识设备

  mkraid /dev/md0

  #如果磁盘被使用过会出现提示,可使用下面的命令强制执行

  mkraid -f /dev/md0

  mkraid -r /dev/md0

  三、创建LVM卷

  #vgscan——可自动产生LVM配置目录

  pvcreate /dev/md0

  vgcreate vg /dev/md0

  #vgdisplay vg 查看配置

  #RAID 5 磁盘容量 n-1/n

  lvcreate -n home -l 250 vg #-l 分配磁盘块数block -L 分配磁盘容量

  #250 * 4 = 1000 (1G)

  lvcreate -n var -l 250 vg

  mkfs.ext3 /dev g/home

  mkfs.ext3 /dev g ar

  mkdir /mnt/home

  mkdir /mnt ar

  mount /dev g/home /mnt/home

  mount /dev g ar /mnt ar

  cp -a /home/* /mnt/home

  cp -a  ar/* /mnt ar

  #df -lh 查看磁盘使用情况

  vi /etc/fstab # 开机自动挂载分区

  /dev g/home  /home  ext3  defaults  0 0

  /dev g ar   ar  ext3  defaults  0 0

  wq

  #开机自动加载RAID

  vi /etc/rc.sysinit

  #找到 raid行

  raidstart /dev/md0

  wq

  reboot #重启

  四、删除原始/home  ar 分区

  mount /dev/sda1 /mnt

  ls /mnt

  rm -rf /mnt ar/*

  rm -rf /mnt/home/*

  五、增加/home磁盘空间 (250块)

  umount /home

  e2fadm -l +250 /dev g/home

  mount /dev g/home /home

  六、根分区挂载到LVM卷上 /

  ls -l /boot/initrd…….img #……省略版本号

  lvcreate -n root -l 250 vg

  mkfs.ext3 /dev g/root

  mount /dev g/root /mnt

  cd /mnt

  mkdir proc tmp var home

  mkdir misc opt mnt initrd

  cp -a bin dev etc sbin lib root usr /mnt & # &——后台运行 或 ^Z

  # boot 文件不能移动

  #创建新的内核

  lsmod #确认raid5模块,磁盘驱动模块

  mkinitrd /boot/initrd-lvm-$(uname -r).img $(uname -r)

  #也可以使用lvcreate_initrd工具

  file /boot/initrd-lvm-…….img #测试新的内核文件

  cd /boot

  mv inited-lvm-…….img initrd-lvm-…….img.gz

  gunzip initrd-lvm-…….img.gz

  mount initrd-lvm-…….img /opt -o loop

  cd /opt

  ls dev #看到 lvm vg 目录

  cp -a /dev/lvm dev/

  cp -a /dev g dev/

  ls dev #找到 lvm vg

  cp -a /dev/sd[bcd] dev

  more linuxrc

  vi linuxrc

  注释 raidautorun

  添加:

  raidstart /dev/md0

  vgscan

  vgchange -a y

  wq

  mount -o defaults --ro /dev g/root /sysroot

  ls bin

  cp /sbin gscan bin/

  cp /sbin gchange bin/

  cp /sbin/raidstart bin/

  ls bin

  ldd /sbin/raidstart #查找相应库文件

  ldd /sbin gchange

  ldd /sbin gscan

  cd lib

  mkdir tls

  cp  b/tls bc.so.6 tls/

  cp  b/ld-linux.so.2 ./

  cp  b blvm-10.s0.1 ./

  ls

  pwd

  # /opt b

  more linuxrc

  cd ..

  cp /etc/raidtab etc

  ls etc ——# ls /opt/etc

  cd ..

  umount /opt

  ls -l /boot/initrd-lvm-…….img

  cd /boot

  gzip initrd-lvm-…….img -c -> initrd-lvm-…….img.gz

  vi /boot/grub.conf

  initrd /boot/initrd-lvm-…….gz

  cd /mnt

  vi fatab

  /dev g/root  /  ext3  defaults  1 1

  wq

  reboot

  pvmove移除磁盘
31# 2010-9-10 11:55:40 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-10 11:59:31 | 显示全部楼层

LVM for Linux测试报告

一、 测试系统环境
  系统平台:Red Hat Linux Advanced Server 2.1
  内核版本:2.4.18
  服务器:DELL 6300
  LVM内核支持版本:1.0.1
  LVM工具版本:1.0.1
  文件系统:reiserfs
  二、 安装步骤
  a) 内核编译
  make mrproper
  make menuconfig
  内核配置。
  
  • Multiple devices driver support (RAID and LVM)
      <*> Logical volume manager (LVM) support
      由于是全新的内核,同时增加了AIC7XXXX SCSI驱动支持、reiserfs和EXT3文件系统的支持。
      SCSI support --->
      SCSI low-level drivers --->
      <*> Adaptec AIC7xxx support
      (253) Maximum number of TCQ commands per device
      (15000) Initial bus reset delay in milli-seconds
      File systems --->
      <*> Reiserfs support
      
  • Have reiserfs do extra internal checking
      
  • Stats in /proc/fs/reiserfs
      <*> Ext3 journalling file system support (EXPERIMENTAL)
      b) 安装LVM工具
      cd /root
      tar zxvf lvm_1.0.1.tar.gz
      cd LVM/1.0.1
      ./configure
      make
      make install
      echo “/sbin/vgscan” >>/etc/rc.d/rc.local
      echo “/sbin/vgchange -a y “>>/etc/rc.d/rc.local
      三、 测试
      a) 创建分区并初始化为物理卷
      用fdisk创建分区/dev/sda7、/dev/sda8、/dev/sdb1、/dev/sdb2、/dev/sdb3、/deb/sdc1、/dev/sdc2、/dev/sdc3、/dev/sdc4,分区格式为8E(LVM标准分区)
      初始化为物理卷
      pvcreate /dev/sda7
      pvcreate /dev/sda8
      pvcreate /dev/sdb1
      pvcreate /dev/sdb2
      pvcreate /dev/sdb3
      pvcreate /dev/sdc1
      pvcreate /dev/sdc2
      pvcreate /dev/sdc3
      pvcreate /dev/sdc4
      b) 在不同的硬盘上同时创建LVM卷组
      vgcreate lvmtest /dev/sda7 /dev/sdb1
      成功创建lvmtest卷组
      c) 删除其中的一个卷组
      vgreduce lvmtest /dev/sdb1
      成功,/dev/sdb1并没有分配给逻辑卷(LV)使用,可以成功删除。已经配空间给LV后的物理卷不能再删除
      d) 增加物理卷
      将刚才成功从卷组中删除的物理卷重新加入卷组
      vgextend lvmtest /dev/sdb1
      成功
      e) 创建逻辑
      lvcreate –L 3G –n lvm1 lvmtest
      成功创建一个名为lvm1、大小为3G的逻辑卷
      lvcreate –L 3G –n lvm2lvmtest
      成功创建一个名为lvm1、大小为3G的逻辑卷
      f) 格式化逻辑卷
      mkreiserfs /dev/lvmtest/lvm1
      mkreiserfs /dev/lvmtest/lvm2
      成功
      g) 将逻辑卷mount到测试目录
      mkdri /mntvm1
      mkdir /mnt/lvm2
      mount /dev/lvmtest/lvm1 /mnt/lvm1
      mount /dev/lvmtest/lvm2 /mnt/lvm2
      成功
      h) 数据读写测试
      cp –rf /var /mnt/lvm1
      cp –rf /usr /mnt/lvm1
      cp –rf /var /mnt/lvm2
      cp –rf /var /mnt/lvm2
      总大小为1.2G,写入正常。
      i) 系统引导时自动mount
      修改/etc/fstab增加如下两行
      /dev/lvmtest/lvm1 /mnt/lvm1 reiserfs defaults 1 2
      /dev/lvmtest/lvm2 /mnt/lvm2 reiserfs defaults 1 2
      重新启动计算机,/mnt/lvm1和/mnt/lvm2两个目录正常mount上去。
      [root@lvm root]# df -ah
      Filesystem Size Used Avail Use% Mounted on
      /dev/sda1 1.9G 298M 1.5G 16% /
      none 0 0 0 - /proc
      none 0 0 0 - /dev/pts
      /dev/sda5 1.4G 20k 1.3G 1% /home
      none 1006M 0 1006M 0% /dev/shm
      /dev/sda3 1.4G 1.3G 154M 89% /usr
      /dev/sda6 1.4G 27M 1.3G 2% /var
      /dev/lvmtest/lvm1 3.0G 1.2G 1.8G 38% /mnt/lvm1
      /dev/lvmtest/lvm2 3.0G 1.2G 1.8G 38% /mnt/lvm2
      j) 逻辑卷扩容
      lvextend –L+2G /dev/lvmtest/lvm2
      resize_reiserfs –f /dev/lvmtest/lvm2
      用df –ah查看,/mnt/lvm2目录的增长的2G,文件读写正常。
      [root@lvm root]# lvextend -L+2G /dev/lvmtest/lvm2
      lvextend -- extending logical volume "/dev/lvmtest/lvm2" to 5.00 GB
      lvextend -- doing automatic backup of volume group "lvmtest"
      lvextend -- logical volume "/dev/lvmtest/lvm2" successfully extended
      [root@lvm root]# resize_reiserfs -f /dev/lvmtest/lvm2
      <-------------resize_reiserfs, 2001------------->
      reiserfsprogs 3.x.0j
      [root@lvm root]# df -ah
      Filesystem Size Used Avail Use% Mounted on
      /dev/sda1 1.9G 298M 1.5G 16% /
      none 0 0 0 - /proc
      none 0 0 0 - /dev/pts
      /dev/sda5 1.4G 20k 1.3G 1% /home
      none 1006M 0 1006M 0% /dev/shm
      /dev/sda3 1.4G 1.3G 154M 89% /usr
      /dev/sda6 1.4G 27M 1.3G 2% /var
      /dev/lvmtest/lvm1 3.0G 1.2G 1.8G 38% /mnt/lvm1
      /dev/lvmtest/lvm2 5.0G 1.2G 3.8G 23% /mnt/lvm2
      k) 逻辑卷减容
      lvreduce –L-2G /dev/lvmtest/lvm2
      umount /mnt/lvm2
      resize_reiserfs –f /dev/lvmtest/lvm2
      mount /dev/lvmtest/lvm2 /mnt/lvm2
      用df –ah 查看,/mnt/lvm2目录成功减小了2G,读写测试正常。
      [root@lvm root]# lvreduce -L-2G /dev/lvmtest/lvm2
      lvreduce -- WARNING: reducing active and open logical volume to 3.00 GB
      lvreduce -- THIS MAY DESTROY YOUR DATA (filesystem etc.)
      lvreduce -- do you really want to reduce "/dev/lvmtest/lvm2"? [y/n]: y
      lvreduce -- doing automatic backup of volume group "lvmtest"
      lvreduce -- logical volume "/dev/lvmtest/lvm2" successfully reduced
      [root@lvm root]# umount /mnt/lvm2
      [root@lvm root]# resize_reiserfs /dev/lvmtest/lvm2
      <-------------resize_reiserfs, 2001------------->
      reiserfsprogs 3.x.0j
      reiserfs_open: bread failed reading bitmap #24 (786432)
      reiserfs_open: bread failed reading bitmap #25 (819200)
      reiserfs_open: bread failed reading bitmap #26 (851968)
      reiserfs_open: bread failed reading bitmap #27 (884736)
      reiserfs_open: bread failed reading bitmap #28 (917504)
      reiserfs_open: bread failed reading bitmap #29 (950272)
      reiserfs_open: bread failed reading bitmap #30 (983040)
      reiserfs_open: bread failed reading bitmap #31 (1015808)
      reiserfs_open: bread failed reading bitmap #32 (1048576)
      reiserfs_open: bread failed reading bitmap #33 (1081344)
      reiserfs_open: bread failed reading bitmap #34 (1114112)
      reiserfs_open: bread failed reading bitmap #35 (1146880)
      reiserfs_open: bread failed reading bitmap #36 (1179648)
      reiserfs_open: bread failed reading bitmap #37 (1212416)
      reiserfs_open: bread failed reading bitmap #38 (1245184)
      reiserfs_open: bread failed reading bitmap #39 (1277952)
      You are running BETA version of reiserfs shrinker.
      This version is only for testing or VERY CAREFUL use.
      Backup of you data is recommended.
      Do you want to continue? [y/N]:y
      Fetching on-disk bitmap..done
      Processing the tree: 0%....20%....40%....60%....80%....100% left 0, 5153 /sec
      nodes processed (moved):
      int 119 (0),
      leaves 18732 (0),
      unfm 269739 (0),
      total 288590 (0).
      ReiserFS report:
      blocksize 4096
      block count 786432 (1310720)
      free blocks 489608 (1013880)
      bitmap block count 24 (40)
      Syncing..done
      在对分区减容时,时间相对较长,时间长短与减容分区的容量大小有关。减容不能在线实现,必须要将LV所在的mount点umount下来,并且减容操作有一定的风险。
      l) 跨不同物理硬盘创建多VG(卷组)
      新建VG。
      vgcreate –s 32M lvmtest2 /dev/sda8 /dev/sdb2 /dev/sdc2
      [root@lvm log]# vgcreate -s 32M lvmtest2 /dev/sda8 /dev/sdb2 /dev/sdc2
      vgcreate -- INFO: maximum logical volume size is 1.00 Terabyte
      vgcreate -- doing automatic backup of volume group "lvmtest2"
      vgcreate -- volume group "lvmtest2" successfully created and activated
      [root@lvm log]# vgdisplay lvmtest2
      --- Volume group ---
      VG Name lvmtest2
      VG Access read/write
      VG Status available/resizable
      VG # 1
      MAX LV 255
      Cur LV 0
      Open LV 0
      MAX LV Size 1.00 TB
      Max PV 255
      Cur PV 3
      Act PV 3
      VG Size 13.91 GB
      PE Size 32.00 MB
      Total PE 445
      Alloc PE /
  • 32# 2010-9-10 11:59:31 回复 收起回复
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2010-9-10 12:01:41 | 显示全部楼层

    使用 lvmstat 命令监控 LVM 性能

    文将就如何使用 lvmstat 命令对卷组和逻辑卷的繁忙程度进行监控的方法作一简单介绍。
    正文 lvmstat 命令可以生成报告,它们可用于更改逻辑卷配置以更好地平衡物理磁盘间输入/输出负载。系统管理员可以使用 lvmstat 命令检测出某些区域或
    逻辑卷的分区上的访问是否比其它区域更加频繁。为了让 lvmstat 命令显示出这些被频繁访问的区域的统计信息,首先必须在每个逻辑卷或卷组上启用信息统计功能。缺省情况下,系统不启用这种统计信息集合,必须使用 -e 标志来为目标逻辑卷或卷组启用这项功能。另外,为卷组启用统计信息集合就等于为卷组内的所有逻辑卷都启用了统计信息集合。

    要启用特定逻辑卷的 lvmstat 命令的统计信息,请使用以下命令:
    # lvmstat -l lvname -e

    要禁用特定逻辑卷的 lvmstat 命令的统计信息,请使用以下命令:
    # lvmstat -l lvname -d

    要启用在一个卷组中的所有逻辑卷的 lvmstat 命令的统计信息,请使用以下命令:
    # lvmstat -v vgname -e

    要禁用在一个卷组中的所有逻辑卷的 lvmstat 命令的统计信息,请使用以下命令:
    # lvmstat -v vgname -d

    当使用 lvmstat 命令时,如果您不指定一个时间间隔值,则输出就会显示逻辑卷中的每一个分区的统计信息。当您指定了时间间隔值(以秒为单位),lvmstat 命令的输出只显示在指定的时间间隔内被访问的特定分区的统计信息。以下是 lvmstat 命令的一个示例:

    # lvmstat -l lv00 1

    Log_part mirror# iocnt Kb_read Kb_wrtn Kbps
    1 1 65536 32768 0 0.02
    2 1 53718 26859 0 0.01

    Log_part mirror# iocnt Kb_read Kb_wrtn Kbps
    2 1 5420 2710 0 14263.16

    Log_part mirror# iocnt Kb_read Kb_wrtn Kbps
    2 1 5419 2709 0 15052.78

    Log_part mirror# iocnt Kb_read Kb_wrtn Kbps
    3 1 4449 2224 0 13903.12
    2 1 979 489 0 3059.38

    Log_part mirror# iocnt Kb_read Kb_wrtn Kbps
    3 1 5424 2712 0 12914

    您可以使用 -c 标志限制 lvmstat 命令显示的统计信息的数目。使用 -c 标志,lvmstat将根据您指定数目来显示最繁忙的几个分区的统计信息。以下是结合 -c 标志使用 lvmstat 命令的一个示例:

    # lvmstat -l lv00 -c 5
    以上命令将只显示I/O 活动最频繁的五个分区的统计信息。

    和时间间隔连用的还有迭代参数值,如果您不指定迭代参数,lvmstat 命令就会继续产生输出,直到您中断该命令。否则,lvmstat 命令显示迭代参数所指定数目的时间间隔内的统计信息。

    在使用 lmvstat 命令过程中,如果发现只有一些分区被频繁使用,可以使用 migratelp 命令把这些分区重新分配到空闲磁盘上的空闲物理分区,migratelp 命令允许您把个别分区从一个硬盘迁移到另一个硬盘,举例如下:

    要将逻辑卷 lv00 的第一个逻辑分区移动到 hdisk1,请输入:
    #migratelp lv00/1 hdisk1

    要将逻辑卷 hd2 的第三个逻辑分区的第二个镜像副本移动到 hdisk5,请输入:
    #migratelp hd2/3/2 hdisk5

    要将逻辑卷 testlv 的第 25 个逻辑分区的第三个镜像副本移动到 hdisk7上的第100个物理分区上,请输入:
    #migratelp testlv/25/3 hdisk7/100

    注意:
    1. 在并发卷组的情况下,必须考虑其它活动的并发节点上的分区使用情况,该信息同样可由 lvmstat 命令获知;
    2. migratelp 命令不能迁移条带化的逻辑卷上的分区;
    3. 使用 migratelp 和 lvmstat 命令,必须具有 root 用户权限。
    33# 2010-9-10 12:01:41 回复 收起回复
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2010-9-10 12:31:23 | 显示全部楼层

    Linux操作系统内核引导参数简介

    概述
        内核引导参数大体上可以分为两类:一类与设备无关、另一类与设备有关。内核源码树下的 Documentation/kernel-parameters.txt 文件列出了所有可用的引导参数,并指明了处理每个参数的具体文件。注意:对于模块而言,引导参数只能用于直接编译到核心里的模块,格式是使用”模块名.参 数=值”模式指定,比如:usbcore.blinkenlights=1 。动态加载的模块可以在 modprobe 命令行上指定相应的参数值,比如:modprobe usbcore blinkenlights=1 。

        可以使用”modinfo -p ${modulename}”命令显示可加载模块的所有可用参数。已经加载到内核中的模块会在 /sys/module/${modulename}/parameters/ 中显示出其参数,并且某些参数的值还可以在运行时通过”echo -n ${value} > /sys/module/${modulename}/parameters/${parm}”命令修改。

        与设备有关的引导参数多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导参数。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导参数,那么就到 drivers/scsi 目录下寻找到 aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导参数说明。大多数参数是通过”__setup(… , …)”函数设置的,逗号前的部分就是引导参数的名称,后面的部分就是处理这些参数的函数名。[提示]你可以在源码树的根目录下试一试

        grep -r '\\b__setup *(' *命令。

        [注意]多个参数之间用空格分割,而每个参数的值中不能包含空白,参数值是一个逗号分割的列表。

        正确:ether=9,0x300,0xd0000,0xd4000,eth0  root=/dev a1
        错误:ether = 9, 0x300, 0xd0000, 0xd4000, eth0  root = /dev a1在内核运行起来之后,可以通过 cat /proc/cmdline 命令查看当初使用的引导参数以及相应的值。

        所有引导参数都是大小写敏感的!

        内核如何处理引导参数
        绝大部分的内核引导参数的格式如下(每个参数的值列表中最多只能有十项):

        name[=value_1][,value_2]...[,value_10]如果”name”不能被识别并且满足”name=value”的格式,那么则被解译为一个环境变量(比如”TERM=linux”或”BOOT_IMAGE=vmlinuz.bak”),否则将被原封不动的传递给 init 程序(比如”single”)。

        内核可以接受的参数个数没有限制,但是整个命令行的总长度(参数/值/空格全部包含在内)却是有限制的,一般是 256-4096 之间,定义在 include/asm tup.h 中的 COMMAND_LINE_SIZE 宏中。

        内核引导参数精选
        由于引导参数多如牛毛,本文不可能涉及全部,因此下面只列出精选出来的一些(基于 2.6.22 内核),与设备有关的基本上都被忽略了。

        标记说明
        并不是所有的参数都是永远可用的,只有在特定的模块存在并且相应的硬件也存在的情况下才可用。引导参数上面的方括号说明了其依赖关系,其中使用的标记解释如下:

       

    ACPI    高级配置与电源接口
    APIC    高级可编程中断控制器
    HW      相应的硬件设备存在
    IA-32   IA-32(i386)体系结构
    X86-64  X86-64体系结构,更多参数在 Documentation/x86_64/boot-options.txt 中描述
    IOSCHED 启用了多个IO调度器
    LIBATA  启用了Libata驱动
    LOOP    启用了Loopback设备
    NET     启用了网络支持
    PCI     PCI总线支持
    PNP     即插即用支持
    PS2     PS/2支持
    SCSI    许多SCSI设备的参数在 Documentation/scsi/ 中描述
    SMP     对称多处理器
    USB     USB支持
    USBHID  USB人机界面设备
    VT      虚拟终端(Virtual terminal)    此外,下面的标记的含义与在逻辑上与上面的有所不同:

    BUGS= 用于在特定的体系结构上解决某些CPU的bug
    KNL     是一个内核启动参数
    BOOT 是一个引导程序参数    标记为”BOOT”的参数实际上由引导程序使用,对内核本身没有直接的意义。没有特别的需求,请不要修改此类参数的语法,更多信息请阅读 Documentation/i386/boot.txt 文档。

    控制台
        这些参数控制着控制台或内核日志,在何处显示内核调试信息和错误信息。

        [KNL]
        console=tty<N>
        设置输出控制台使用第N号虚拟控制台。
        [IA-32,X86-64]
        earlyprintk=vga
        在传统的控制台初始化之前,在VGA上显示内核日志信息。如果不使用此参数那么这些信息你可用永远没机会看见。
        loglevel={0|1|2|3|4|5|6|7}
        所有小于该数字的内核信息都将在控制台上显示出来。这个级别可以使用 klogd 程序或者修改 /proc/sys/kernel/printk 文件进行调整。取值范围是”0″(不显示任何信息)到”7″(显示所有级别的信息)。建议至少设为”4″。[提示]级别”7″要求编译时加入了调试支持。
        [KNL]
        initcall_debug
        跟踪所有内核初始化过程中调用的函数。有助于诊断内核在启动过程中死在了那个函数上面。
        中断
        这些参数影响内核与处理中断的硬件之间的接口。常见的中断控制器有两种:传统的8259A和新式的APIC,前者也被称为”PIC”。8259A只 适合单CPU的场合,而APIC则能够把中断传递给系统中的每个CPU,从而充分挖掘SMP体系结构的并行性。所以8259A已经被淘汰了。

        APIC系统由3部分组成:APIC总线、IO-APIC、本地APIC。

        每个CPU中集成了一个本地APIC,负责传递中断信号到处理器。而IO-APIC是系统芯片组中一部分,负责收集来自I/O设备的中断信号并发送到本地APIC。APIC总线则是连接IO-APIC和各个本地APIC的桥梁。

        [APIC,i386]
        apic={quiet|verbose|debug}
        在初始化 APIC 和 IO-APIC 组件的时候,显示调试信息的详细程度。默认是”quiet”。
        [SMP,APIC]
        noapic
        强制内核禁止使用IO-APIC(输入输出高级可编程输入控制器)
        [IA-32,APIC]
        lapic
        强制内核启用 local APIC ,即使 BIOS 已经禁用了。
        [IA-32,APIC]
        nolapic
        强制内核禁用 local APIC ,即使 BIOS 已经启用了。
        [IA-32,SMP,KNL]
        noirqbalance
        禁止使用内核中的中断平衡逻辑
        [HW]
        irqfixup
        用于修复基本的中断问题:当一个中断没有被处理时搜索所有可用的中断处理器。用于解决某些firmware缺陷。
        [HW]
        irqpoll
        用于修复更进一步的中断问题:当一个中断没有被处理时搜索所有可用的中断处理器,并且对每个时钟中断都进行搜索。用于解决某些严重的firmware缺陷。
        [IA-32]
        noirqdebug
        默认情况下,内核将探测并且禁止未处理的中断源,以免引起内核其他部分的响应问题,这个选项禁止该功能。
        内存
        [KNL,BOOT]
        highmem=nn[KMG]
        强制指定highmem区域的大小,甚至在默认没有 highmem的机器上也能工作。这个选项还可以用来在大内存的机器上强制减少highmem区域的大小。内核使用低于896M的”直接映射物理内存”很 方便,但使用大于896M的部分(highmem)却比较麻烦,所以系统在给用户进程分配内存时会优先使用highmem。对于小于等于 1G 内存的用户来说,则无需关心这个问题。
        [HW,IA-32]
        hugepages=<NUM>
        指定 HugeTLB 页的最大数量,仅在内核启用了CONFIG_HUGETLBFS之后才有效。大多数现代计算机体系结构提供对多页面大小的支持,比如IA-32结构支持 4K和4M(PAE模式为2M)两种页面。因此Linux将物理内存划分成许多固定大小的页面(默认大小为 4k),每个页对应一个page结构,这些结构组成一个mem_map[]数组。TLB(Translation Lookaside Buffer)是虚拟地址到物理地址的翻译缓冲区,这种缓冲区在处理器上是很宝贵的,操作系统总是尝试将有限的TLB资源发挥到极致。特别是能够轻松获得 若干G内存的时候(>4G),这种优化就显得尤为关键。而 HugeTLB 特性则允许将某些页的尺寸增大到 4MB 。用户可以使用mmap系统调用或者标准的SYSv共享内存调用(shmget,shmat)来使用hugepage。可以使用 grep Huge /proc/meminfo 命令查看是否开启了 hugepage 支持。
        [KNL]
        ihash_entries=<NUM>
        内核会在内存中缓存一定数量的inode结构来加速文 件访问,每个inode对应一个文件(不同于文件系统中的inode概念),包含文件访问权限/属主/组/大小/生成时间/访问时间/最后修改时间等信 息。这些inode保存在一个哈希表中。这个值用于指定这个哈希表的最大项数。比如 1G 内存推荐为 16384 ,4G 及以上内存推荐 131072 ,但你可以根据自己硬盘上可能被访问的文件数量对默认值进行调整(注意需要考虑哈希值的碰撞)。
        [KNL,BOOT]
        max_addr=nn[KMG]
        内核将忽略在该物理地址以上的内存
        [KNL,BOOT]
        mem=nn[KMG]
        强制指定内核使用多少数量的内存。缺乏远见设计的传统BIOS只能报告最 大64MB内存。新的e820规范则突破了这个限制,使得BIOS可以正确报告大于64MB的内存。如果你在老旧的机器上使用大内存就需要指定这个参数 (最保险的做法是在实际内存的总数上减掉1MB)。但有时候e820报告的数量并不准确,此时就需要使用下面的memmap参数精确指定内存映射(此时就 不要使用”mem=”了)。
        [KNL,IA-32,X86_64]
        memmap=exactmap
        指定将要使用随后的”memmap=nn@ss”等参数进行精确的E820内存映射。比如对于一个4G内存的机器可能是:”memmap=exactmap memmap=640K@0 memmap=4095M@1M”。
        [KNL]
        memmap=nn[KMG]@ss[KMG]
        强制内核只使用从ss开始的nn长度的特定内存区域。可以多次使用以指定多个区域。
        [IA-32,X86-64]
        noexec={on|off}
        允许(on,默认)或禁止(off)内核将部分内存映射为”不可执行”区域。
        [KNL,BUGS]
        reserve=nn[KMG]
        强制内核忽略(预留)一定量的IO内存区域
        [KNL,BOOT]
        vmalloc=nn[KMG]
        强制指定vmalloc区域的大小。可用于增加vmalloc区域的最小尺寸(x86默认128MB),也可以用于减少vmalloc的大小,增加更多的空间用于直接映射内核RAM。
        norandmaps
        默认内核随机化程序启动的地址,该选项禁用该功能。该选项等价于”echo 0 > /proc/sys/kernel/randomize_va_space”命令。

    CPU
        [BUGS=IA-32]
        cachesize=<NUM>
        强制指定 CPU L2 cache 的大小,单位是字节。
        [KNL,BUGS=IA-32]
        nmi_watchdog={0|1|2|3}
        设置非屏蔽中断(NMI)watchdog的特性。”0″表示禁用NMI watchdog;”1″表示使用APIC;”2″表示使用local APIC;”3″表示NMI watchdog有缺陷,因此被禁用。
        [IA-32]
        mce
        nomce
        启用/禁用Machine Check Exception功能。
        [SMP]
        maxcpus=<NUM>
        明确指定一个SMP内核能够使用的最大CPU数量。最好使用”maxcpus=0″而不是”maxcpus=1″来禁用SMP功能。
        Ramdisk
        [BOOT]
        initrd=<filename>
        指定initial ramdisk的位置
        [RAM]
        noinitrd
        禁止使用任何initial RAM disk
        [RAM]
        ramdisk_blocksize=<NUM>
        指定ramdisk的块尺寸,默认是”1024″。
        [RAM]
        ramdisk_size=<NUM>
        RAM disks的大小(kB),默认为4096(4MB)。
        根文件系统
        [KNL]
        root=XXxx
        告诉核心启动时以那个设备作为根文件系统使用,默认为编译内核时使用的设备。设备名由16进制主设备号(XX)与16进制次设备号(xx)组成,比如:root=B401 相当于从 /dev/uba1 启动;root=0801 相当于从 /dev/sda1 启动。
        [KNL]
        rootdelay=<NUM>
        挂载文件系统前延迟多少秒,当根文件系统在USB或FireWire设备上时常用。
        [KNL]
        rootflags=
        设置根文件系统的挂载选项,比如”noatime,ro”。各种不同的文件系统所能使用的选项各不相同(比如 Documentation/filesystems/xfs.txt),也可以参考 mount 程序的选项。
        [KNL]
        rootfstype=
        根文件系统的类型,比如”xfs”。
        init
        [KNL]
        init=<full_path>
        指定内核启动后运行的第一个程序的绝对路径。默认为”/sbin/init”。
        [KNL]
        rdinit=<full_path>
        从ramdisk中运行的第一个程序的绝对路径,默认为”/init”。指定的文件必须是在ramdisk而不是在根文件系统中进行。
        [KNL]
        S
        以单用户模式运行init,默认是多用户模式。
    ACPI
        [HW,ACPI,X86-64,i386]
        acpi={force|off|ht|strict|noirq}
        ACPI的总开关。force表示强制启用;off表示强制禁用;noirq表示不要将ACPI用于IRQ路由;ht表示只运行足够的ACPI来支持超线程;strict表示降低对不严格遵循ACPI规格的平台的兼容性。
        acpi_sleep={s3_bios,s3_mode}
        ACPI休眠选项。在从S3状态(挂起到内存)恢复的时候,硬件需 要被正确的初始化。这对大多数硬件都不成问题,除了显卡之外,因为显卡是由BIOS初始化的,内核无法获取必要的恢复信息(仅存在于BIOS中,内核无法 读取)。这个选项允许内核以两种方式尝试使用ACPI子系统来恢复显卡的状态。
        [HW,ACPI]
        acpi_sci={level|edge|high|low}
        ACPI系统控制终端触发器模式(System Control Interrupt trigger mode)。
        [HW,ACPI]
        acpi_irq_balance
        使ACPI对中断请求进行平衡,在APIC模式下为默认值
        [HW,ACPI]
        acpi_irq_nobalance
        ACPI不对中断请求进行平衡(默认),PIC模式下为默认值
        [HW,ACPI]
        acpi_irq_pci=<irq>,<irq>…
        如果启用了irq_balance则将列出的中断号标记为已经被PCI子系统使用,可用于屏蔽某些中断。
        [HW,ACPI]
        acpi_os_name=
        告诉ACPI BIOS操作系统的名称。常常用来哄骗某些老旧的BIOS以为运行的是Windows系统。比如”Microsoft 2001″表示WinXP,”Microsoft Windows”表示Win98。
        [HW,ACPI]
        acpi_serialize
        强制串行化ACPI机器语言(ACPI Machine Language)方法,操作系统使用这种语言与BIOS打交道。
        [HW,ACPI]
        acpi_use_timer_override
        对于某些有毛病的 Nvidia NF5 主板需要使用此选项才能正常使用,不过此时 HPET 将失效。
        [IA-32,X86-64]
        acpi_pm_good
        跳过pmtimer的bug检测,强制内核假设这台机器的pmtimer没有毛病。用于解决某些有缺陷的BIOS。
        [KNL,ACPI]
        memmap=nn[KMG]#ss[KMG]
        将从ss开始的nn长度的内存区域标记为ACPI数据。
        [KNL,ACPI]
        memmap=nn[KMG]$ss[KMG]
        将从ss开始的nn长度的内存区域标记为”保留”。
        [ACPI]
        pnpacpi=off
        禁用ACPI的即插即用功能,而使用PNPBIOS来代替。
        [HW,ACPI]
        processor.max_cstate={0|1|2|3|4|5|6|7|8|9}
        无视 ACPI表报告的值,强制制定CPU的最大C-state值。这里的数字必须是一个有效的C-state值,比如Yonah处理器支持”0-4″五个级 别:C0为正常状态,其他则为不同的省电模式(数字越大表示CPU休眠的程度越深/越省电)。”9″表示超越所有的DMI黑名单限制。你的CPU的95% 的时间应该处于最深度的idle状态。
        processor.nocst
        不使用_CST方法来侦测C-state值,而是使用传统的FADT方法。
        SCSI
        这里只列出了SCSI子系统的通用参数。其他特定于某一种SCSI驱动的参数并未列出,请在 Documentation 目录下的 kernel-parameters.txt 文件中和 scsi 目录下寻找它们。

        [SCSI]
        max_luns=
        限制SCSI的最大逻辑单元号(LUN,logical unit number)。取值范围在1到2^32-1之间。
        [SCSI]
        max_report_luns=
        限制系统能够接受的最大逻辑单元号(LUN)。取值范围在1到16384之间。
        PCI
        [PCI]
        pci=option[,option...]
        off
        [IA-32]不检测PCI总线,也就是关闭所有PCI设备。
        bios
        [IA-32]强制使用PCI BIOS而不是直接访问硬件,这表示内核完全信任BIOS(大多数情况下它并不可信)。仅在你的机器有一个不标准的PCI host bridge的时候才用。
        nobios
        [IA-32]强制直接访问硬件而不使用PCI BIOS,2.6.13之后这是默认值。如果你确定在内核引导时的崩溃是由BIOS所致就可以使用它。
        conf1
        [IA-32]强制硬件设备使用PCI Configuration Mechanism 1访问PCI Memory以与内核中的驱动程序进行通信。
        conf2
        [IA-32]强制硬件设备使用PCI Configuration Mechanism 2访问PCI Memory以与内核中的驱动程序进行通信。
        nommconf
        [IA-32,X86_64]禁止为 PCI Configuration 使用 MMCONFIG 表。
        nomsi
        [MSI]如果启用了PCI_MSI内核配置选项,那么可以使用这个参数在系统范围内禁用MSI中断。
        nosort
        [IA-32]不在检测阶段根据PCI BIOS给出的顺序对PCI设备进行排序。进行这样的排序是为了以与早期内核兼容的方式获取设备序号。
        biosirq
        [IA-32]使用PCI BIOS调用来获取中断路由表。这些调用在不少机器上都有缺陷,会导致系统在使用过程中挂起。但是在某些机器上却是唯一获取中断路由表的手段。如果内核无法分配IRQ或者发现了第二个PCI总线,就可以尝试使用这个选项解决问题。
        rom
        [IA-32]为扩展ROM分配地址空间。使用此选项要小心,因为某些设备在ROM与其它资源之间共享地址解码器。
        pirqaddr=0xAAAAA
        [IA-32]指定物理地址位于F0000h-100000h范围之外的PIRQ表(通常由BIOS产生)的物理地址。
        lastbus=N
        [IA-32]扫描所有总线,直到第N个总线。如果内核找不到第二条总线的时候,你就需要使用这个选项明确告诉它。
        assign-busses
        [IA-32]总是使用你自己指定的PCI总线号(而不是firmware提供的)。
        usepirqmask
        [IA-32]优先使用可能存在于BIOS $PIR表中的IRQ掩码。某些有缺陷的BIOS需要这个选项,特别是在HP Pavilion N5400和Omnibook XE3笔记本上。如果启用了ACPI IRQ路由的话,将不会考虑这个选项的设置。
        noacpi
        [IA-32]不为IRQ路由或者PCI扫描使用ACPI。
        routeirq
        为所有PCI设备执行IRQ路由。这个通常在pci_enable_device()中执行,所有这是一个解决不调用此函数的bug驱动程序的临时解决方法。
        bfsort
        按照宽度优先的顺序对PCI设备进行排序。进行这样的排序是为了以与2.4内核兼容的方式获取设备序号。
        nobfsort
        不按照宽度优先的顺序对PCI设备进行排序。
        cbiosize=nn[KMG]
        从CardBus bridge 的 IO 窗口接受的固定长度的总线空间(bus space),默认值是256字节。
        cbmemsize=nn[KMG]
        从CardBus bridge 的 memory 窗口接受的固定长度的总线空间(bus space),默认值是64MB。


      网络
        [NET]
        netdev=<irq>,<io>,<mem_start>,<mem_end>,<name>
        网络设备参数。具体细节取决于不同的驱动程序,请参考各自的驱动程序文档。该选项通常不用于PCI/USB等即插即用网卡。
        [KNL,NET]
        rhash_entries=
        设置内核路由缓冲区哈希表的大小,仅供内核网络专家使用。
        [NET]
        shapers=
        设置内核允许使用的最大网络Shaper(限制网络速率的虚拟网络设备)。
        [KNL,NET]
        thash_entries=
        设置内核允许使用的TCP链接哈希表的大小。
        硬件
        [USB]
        nousb
        禁用USB子系统。
        定时器
        [i386,x86-64]
        enable_timer_pin_1
        disable_timer_pin_1
        启用/禁用APIC定时器的PIN1,可以用于解决某些有bug的芯片组(特别是ATI芯片组)。内核将尽可能自动探测正确的值。
        [IA32/X86_64]
        enable_8254_timer
        disable_8254_timer
        启用/禁用 在通过IO-APIC对IRQ0(时钟中断)进行路由之外,还通过8254进行路由。内核将尽可能通过检测来选择正确的值。
        [IA-32,HPET]
        hpet=disable
        禁用HPET,转而使用PIT。
        [GENERIC_TIME,IA-32,X86-64,ACPI]
        clocksource={hpet|pit|tsc|acpi_pm}
        强制指定clocksource来取代默认值。
        其他杂项
        [VT]
        default_utf8={0|1}
        在系统范围内为将所有tty默认设置为UTF-8模式。”1″表示UTF-8模式,默认值为”0″。
        [IOSCHED]
        elevator={”anticipatory”|”cfq”|”deadline”|”noop”}
        指定默认IO调度器
        [LOOP]
        max_loop=<1-256>
        最大允许挂载的loopback设备数。
        [KNL]
        panic=<seconds>
        在内核发生panic之后reboot之前等候的秒数。默认值”0″表示不重启而停顿在那里。
        Popularity: 1% [?]
    34# 2010-9-10 12:31:23 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:25:35 | 显示全部楼层

    给我点愤怒.

    给我点愤怒.
    35# 2010-9-24 14:25:35 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:25:45 | 显示全部楼层

    我想要`~

    我想要`~
    36# 2010-9-24 14:25:45 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:25:59 | 显示全部楼层

    看起来好~~像啊~~~~~

    看起来好~~像啊~~~~~
    37# 2010-9-24 14:25:59 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:26:11 | 显示全部楼层

    本人姓:常...名:有理..

    本人姓:常...名:有理..
    38# 2010-9-24 14:26:11 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:26:23 | 显示全部楼层

    你你你你 呵呵~~~~别这样哦.....

    你你你你 呵呵~~~~别这样哦.....
    39# 2010-9-24 14:26:23 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:26:33 | 显示全部楼层

    写得好啊 估计有马甲

    写得好啊 估计有马甲
    40# 2010-9-24 14:26:33 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:26:42 | 显示全部楼层

    哎 怎么说那~~

    哎 怎么说那~~
    41# 2010-9-24 14:26:42 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:26:54 | 显示全部楼层

    挨骂也是幸福~~~

    挨骂也是幸福~~~
    42# 2010-9-24 14:26:54 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:27:05 | 显示全部楼层

    去干吗啊~~~伤心啊~~~

    去干吗啊~~~伤心啊~~~
    43# 2010-9-24 14:27:05 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:27:15 | 显示全部楼层

    加油啊!!!!顶哦!!!!!

    加油啊!!!!顶哦!!!!!
    44# 2010-9-24 14:27:15 回复 收起回复
    回复 支持 反对

    使用道具 举报

    发表于 2010-9-24 14:27:24 | 显示全部楼层

    百度一下,找到相关网页约15,600篇,用时0.001秒

    百度一下,找到相关网页约15,600篇,用时0.001秒
    45# 2010-9-24 14:27:24 回复 收起回复
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 论坛注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

    GMT+8, 2025-1-24 05:39 , Processed in 0.064012 second(s), 11 queries , Redis On.  

      Powered by Discuz!

      © 2001-2025 HH010.COM

    快速回复 返回顶部 返回列表