㈠ 装linux系统时总是出现loading SCSI divre和loading ahci diver是怎么回事,我的硬盘是ide的
有些模块是要装入的,虽然你没有相关设备还是要装入
如:部分移动设备是scsi接口的,这样你就可以直接用,不用在加载这个模块。还有些ide硬盘,加个盒子就变成移动硬盘(usb接口),对于所有的usb街口的设备,linux都是模拟成scsi 设备读写的。你可以看usb盘加载后的设备名,sda,sdb...,这个s就表示scsi设备。你不加载,怎么用它们呢?
---------------
AHCI,全称为Serial ATA Advanced Host Controller Interface(串行ATA高级主控接口),是在Intel的指导下,由多家公司联合研发的接口标准,其研发小组成员主要包括Intel、AMD、戴尔、Marvell、迈拓、微软、Red Hat、希捷和StorageGear等著名企业。AHCI描述了一种PCI类设备,主要是在系统内存和串行ATA设备之间扮演一种接口的角色,而且它在不同的操作系统和硬件中是通用的。
AHCI通过包含一个PCI BAR(基址寄存器),来实现原生SATA功能。由于AHCI统一接口的研发成功,使得支持串行ATA产品的开发工作大为简化,操作系统和设备制造商省去了单独开发接口的工作,取而代之的是直接在统一接口上进行操作,可以实现包括NCQ(Native Command Queuing)在内的诸多功能。
一直以来SCSI硬盘在多任务负载下的表现能力为人称道,其根本的原因除了SCSI接口惊人的接口速率外,便是它的指令排序功能。以往的PATA、SATA硬盘也正是因为缺少一种指令优化执行功能而在性能上落后于SCSI硬盘。针对这一困境,Intel的AHCI 1.0规范首次引入的NCQ(Native Command Qu),它的应用能够大幅度减少硬盘无用的寻道次数和数据查找时间,这样就能显著增强多任务情况下硬盘的性能。
另外,作为SATA标准的改进版,Intel完善了Serial ATA II接口的详细规格,并表示串行ATA II的研发将属于AHCI统一接口的第二个阶段。而其中第一阶段从去年已经开始,不少厂商也推出Serial ATA接口的产品,包括硬盘和主板。但这仅仅是作为过渡,在第二阶段,Serial ATA II将会凭借更高的信号传输速度直接取代SATA.
—理论结束,现在看看你能不能用这个东西—————————————————————————
高级主机控制器接口 (AHCI) 是一种接口技术指标,它允许存储驱动程序启用高级串行 ATA 功能,如本机命令队列和热插拔。
注:AHCI 需要英特尔? 应用程序加速器 4.1 或更高版本,并与下列控制器集线器一同置入芯片组:
英特尔? 82801GBM I/O 控制器集线器 (ICH7M) - 仅限 AHCI
英特尔? 82801GR I/O 控制器集线器 (ICH7R) - RAID 和 AHCI
英特尔? 82801GH I/O 控制器集线器 (ICH7DH) - RAID 和 AHCI
英特尔? 82801FR I/O 控制器集线器(ICH6R)- RAID 和 AHCI
英特尔? 82801FBM I/O 控制器集线器 (ICH6M) - 仅限 AHCI
基于 ICH7 和 ICH6 的芯片组,以及基于 ICH5 和 ICH5R 的芯片组,未使用 AHCI。
------
第2部分来源于网络
㈡ linux系统怎样找到U盘
用FDISK-l 来找,一般U盘会被LINUX认为SCSI设备,如果有SCSI设备那么U盘一般是最后一个SCSI设备.如果没有SCSI设备,一般sda就是U盘。
若第一个插入的u盘一般是sda,但第二个插入的不同牌子的u盘有可能是sdb,而且下次插入时还是如此。
具体步骤:
1.查看所有的设备文件.
在linux的文件系统中, /dev中存放着所有的设备文件.
cd /dev #进入dev文件夹
ls #查看所有的文件
其中名为sda的系类是磁盘设备, sdb系列是U盘设备.
2.外部设备挂载点
在linux中, 外部设备需要挂载在/mnt文件夹中.
cd /mnt#进入/mnt文件夹
ls#列出所有文件, 发现一个也没有
mkdir usb #创建一个名为usb的文件夹, 今后将usb设备挂载在此文件夹上.
3.使用mount命令挂载设备.
先查看/dev文件夹中的U盘设备具体名称(以sdb开头, 我的U盘名称是sdb4, 如果有多个, 请一个一个尝试, 我的由两个(sdb, sdb4)).
sudo mount -t vfat /dev/sdb4 /mnt/usb#将外部名为sdb4的U盘设备挂载到/mnt/usb文件夹上.
cd /mnt/usb
ls#查看U盘中所有文件
请用后卸载设备 umount /dev/sdb4.
㈢ 怎么知道linux设备文件对应的设备
问题可以详细点吗?比如对应的是U盘还是网卡或者别的什么?
如果是U盘或者网卡。LINUX是用udev来做对应的。
参考如下路径:
cd
/etc/udev/rules.d/
硬件对应的信息写在这个目录下的文件里。
比如网卡
对应的是
70-persistent-net.rules
你可以去对比里面的网卡mac地址
具体你也没说设备是什么。我猜测你是想知道udev。
㈣ linux系统中Usb设备在/dev下对应的设备节点是
usb存储设备也目前在内核中在两种驱动方法,一种是模拟SCSI硬盘,通过fdisk -l 出现的是版/dev/sd[0-n];另一种权是非模拟SCSI硬盘,我们通过fdisk 列系统存在的存储设置时会出现 /dev/uba 类似的;但目前这个驱动并不成熟,比如大数据量表现不稳定;其实USB接口的存储设备,在Linux表现还是比较差;
㈤ Linux 格式化硬盘方法教程
我们使用Linux过程中,和Windows也一样。使用硬盘的时候,出现了问题,需要对硬盘进行格式化。那 Linux 如何格式化硬盘呢?下面就和大家说一下 Linux 格式化硬盘的方法和步骤。
步骤如下:
1、硬盘的接口类型
硬盘的接口一般分为两种,一种是IDE并行接口,一种是SATA串行接口, 在 Linux 上面IDE接口的硬盘被识别为/dev/hd[a-z]这样的设备,其中hdc表示光驱设备,这是因为主板上面一般有两个IDE插槽,一个IDE插槽可以接两个硬盘,而光驱是接着IDE的第二个插槽上面的第一个接口上面。其他诸如SCSI,SAS,SATA,USB等接口的设备在linux识别为/dev/sd[a-z]。
2、 Linux 硬盘的分区
磁盘的分区分为: primary(主分区)、extended(扩展分区)、Logical (逻辑分区)且主分区加上扩展分区的个数小于等于4个。且扩展分区最多只有一个,扩展分区是不能直接在里面写入数据的,扩展分区里面新建逻辑分区才能读写数据。如果看见一个硬盘有很多分区,则其实是在扩展分区里面新建的逻辑分区。
主分区从 sdb1--sdb4
逻辑分区是从 sdb5--sdbN
如果所示linux硬盘分区之间的关系
第一种情况为:四个主分区
第二种情况为:三个主分区+一个扩展分区(扩展分区里面包括逻辑分区)
4、使linux内核识别分区信息
cat /proc/partitions 查看内核识别的分区信息
[root@Redhat5 ~]# cat /proc/partitions
major minor #blocks name
8 0 125829120 sda
8 1 104391 sda1
8 2 41945715 sda2
8 3 1052257 sda3
253 0 30703616 dm-0
253 1 5111808 dm-1
让内核重新读取硬件分区表有两个命令
partprobe /dev/sda ------》 redhat 5.x ,redhat 6.x需要重启
partx -a /dev/sda5 /dev/sda-------》redhat 6.x
内核加载分区信息之后再查看
[root@Redhat5 ~]# cat /proc/partitions
major minor #blocks name
8 0 125829120 sda
8 1 104391 sda1
8 2 41945715 sda2
8 3 1052257 sda3
8 4 0 sda4
8 5 1959898 sda5
8 6 3911796 sda6
253 0 30703616 dm-0
253 1 5111808 dm-1
5、格式化分区
格式化分区的命令
mkfs -t fstype /dev/part -t选择格式化的类型,然后是那个分区
mkfs.ext2 /dev/part 格式化为ext2的类型,然后是接那个分区
mkfs.ext3 /dev/part 格式化为ext3的类型,然后是接那个分区
mkfs.ext4 /dev/part 格式化为ext4的类型,然后是接那个分区
mke2fs 比之前几个更加强大的格式化分区的命令
这几个命令之间相关的关系
mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4
mkfs -t ext3 = mkfs.ext3 = mke2fs -j = mke2fs -t ext3
mkfs -t ext2 = mkfs.ext2 = mke2fs = mke2fs -t ext2
mke2fs (man mke2fs):创建文件类型---》/etc/mke2fs.conf 配置文件
-t:文件类型
-j:相当于 ext3
-b:指定块大小{1024”2048|4096byte},块大小取决cpu对内存页框大小的支持,x86系统默认页
大小是4096,4k
-L: label 设定卷标
-m: #预留给管理使用的块所占的比率 一般用在分区很大的时候,#为数字
mke2fs -t ext3 /dev/sda5 #把分区格式为ext3格式的
mke2fs -t ext3 -b 2048 /dev/sda5 # 把分区的块改成2048字节,一般用于系统中小文件很多的情况
mke2fs -t ext3 -m 3 /dev/sda5 #把分区预留的空间改为所占总空间的3%,默认为5%,因为当某个分区足够大的时候,可以减少空间
mke2fs -t ext3 -L DATE /dev/sda5 #把分区的卷标设置为DATE
tune2fs 命令可以查看分区的详细信息,mke2fs 与 tune2fs的关系和useradd与usermod的关系很类似。mke2fs支持的参数tune2fs大多数都支持,详情请man tune2fs查看相关的帮助。
option
-l: 显示文件系统超级块信息;
-L label:重新设定卷标;
-m #: 调整预留给管理使用的块所占据总体空间的比例;
-r #: 调整预留给管理使用的块个数;
-o:设定挂载默认选项
-O: 设定文件系统默认特性
-E: 调整文件系统的扩展属性
tune2fs不支持-b参数改变块的大小。
tune2fs -l /dev/sda5 可以详细查看分区的信息
[root@Redhat5 ~]# tune2fs -l /dev/sda5 | grep “^Block size” //显示sda5分区块的大小
Block size: 4096
[root@Redhat5 ~]# tune2fs -l /dev/sda5 | grep “^Reserved” //显示sda5预留空间
Reserved block count: 24498
Reserved GDT blocks: 119
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
tune2fs -L DATE /dev/sda5 #修改卷标
tune2fs -m 3 /dev/sda5 #修改预留给管理使用的块所占据总体空间的比例
e2label:显示或设定卷标
e2label /dev/sda5 MYDATE
blkid :显示设备的UUID及文件系统类型,及卷标
6、挂载
mount 挂载------》显示的是/etc/mtab文件里面的内容
mount [-t fstype] DEVICE MOUNT_POINT
命令 设备 挂载点
mount [-t fstype] LABEL=“卷标” MOUNT_POINT --》e2label查看标签
mount [-t fstype] UUID=“UUID” MOUNT_POINT ----》blkid可以查看UUID
options:
-o:用于指定挂着选项,常用的挂着选项,选项有很多用逗号隔开
ro:只读挂载
rw:读写挂载(默认)
noatime:关闭更新访问时间
auto:是否能够由“mount -a”挂载
defaults:相当于rw, suid, dev, exec, auto, nouser, async.
sync:同步
async:异步
noexec:不容易设备中的二进制直接运行
remount:重新挂载
loop:本地回环设备: 挂载系统已经存在的镜像
-t:
-v:verbose 显示详细信息
-n:挂载文件系统时,不更新/etc/mtab文件
-r:只读挂载相当于“-o ro”
挂载的几种方式
显示系统已经挂载的文件
挂载分区sda5到/mnt/sda5目录下
[root@Redhat5 ~]# mkdir /mnt/sda5 #创建一个挂载目录
[root@Redhat5 ~]# mount /dev/sda5 /mnt/sda5/ #把分区挂载到新建的目录里面
[root@Redhat5 ~]# mount “ grep ”/dev/sda5“ #查看分区是否挂载
/dev/sda5 on /mnt/sda5 type ext3 (rw) #显示分区已经挂载
[root@Redhat5 ~]# umount /dev/sda5 #卸载分区
[root@Redhat5 ~]#mount | grep ”/dev/sda5“ #发现分区已经被卸载
[root@Redhat5 ~]# blkid #显示设备的UUID及文件系统类型,及卷标
/dev/mapper/vol0-home: UUID=”d1aeef77-bb47-4718-a91c-d4870b536440“ TYPE=”ext3“
/dev/sda3: LABEL=”SWAP-sda3“ TYPE=”swap“
/dev/sda1: LABEL=”/boot“ UUID=”5e5eaaac-cc56-42da-81eb-9adebff0fa2e“ TYPE=”ext3“
/dev/vol0/root: UUID=”4302a528-e88e-43d3-b3cc-1c2b29cda656“ TYPE=”ext3“
/dev/sda5: LABEL=”DATE“ UUID=”8f4f9b53-0bf0-4ce9-9665-bd4c7ae9ce59“ TYPE=”ext3“
[root@Redhat5 ~]# mount LABEL=”DATE“ /mnt/sda5/ #可以查到到分区5的标签为DATE,通
过挂载标签来挂载分区
[root@Redhat5 ~]# mount | grep ”/dev/sda5“ #查看分区是否挂载
/dev/sda5 on /mnt/sda5 type ext3 (rw)
[root@Redhat5 ~]# umount /dev/sda5 #卸载分区
[root@Redhat5 ~]#mount | grep ”/dev/sda5“
[root@Redhat5 ~]# mount UUID=”8f4f9b53-0bf0-4ce9-9665-bd4c7ae9ce59“ /mnt/sda5/
#通过挂载UUID来挂载分区
[root@Redhat5 ~]#mount | grep ”/dev/sda5“
/dev/sda5 on /mnt/sda5 type ext3 (rw)
用mount命令挂载的文件在系统开机的时候是不能自动挂载的,想要系统开机就挂载写到配置文件即可/etc/fstab
echo ”LABEL=DATE /mnt/sde5 ext3 defaults 0 0“ 》》 /etc/fstab
/etc/fstab文件的格式
[root@Redhat5 ~]# cat /etc/fstab
/dev/vol0/root / ext3 defaults 1 1
/dev/vol0/home /home ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
字段以空格分隔
1、挂载的设备:设备文件、卷标、UUID
2、挂载点: 与跟相关联的目录
3、文件系统类型:ext3,ext4
4、挂载选项:defaults表示使用默认选项,多个选项彼此间逗号分隔
5、转储频率:0:从不备份、1:每日备份、2:每隔一日备份
6、自检次序:0:不检测、1:第一个检测,一般只能为根文件系统第一个检测 2 。。.9
补充:系统常用维护技巧
1,在 “开始” 菜单中选择 “控制面板” 选项,打开 “控制面板” 窗口,单击 “管理工具” 链接
2,在打开的 “管理工具” 窗口中双击 “事件查看器” 图标
3, 接着会打开 “事件查看器” 窗口
4,在右侧窗格中的树状目录中选择需要查看的日志类型,如 “事件查看器本地--Win日志--系统日志,在接着在中间的 “系统” 列表中即查看到关于系统的事件日志
5,双击日志名称,可以打开 “事件属性” 对话框,切换到 “常规” 选项卡,可以查看该日志的常规描述信息
6,切换到 “详细信息” 选项卡,可以查看该日志的详细信息
7,打开 “控制面板” 窗口,单击 “操作中心” 链接,打开 “操作中心” 窗口,展开 “维护” 区域
8,单击 “查看可靠性历史记录” 链接,打开 “可靠性监视程序” 主界面,如图所示, 用户可以选择按天或者按周为时间单位来查看系统的稳定性曲线表,如果系统近日没出过什么状况, 那么按周来查看会比较合适。观察图中的曲线可以发现,在某段时间内,系统遇到些问题,可靠性指数曲线呈下降的趋势,并且在这段时间系统遇到了三次问题和一次警告,在下方的列表中可以查看详细的问题信息。
相关阅读:系统故障导致死机怎么解决
1、病毒原因造成电脑频繁死机
由于此类原因造成该故障的现象比较常见,当计算机感染病毒后,主要表现在以下几个方面:
①系统启动时间延长;
②系统启动时自动启动一些不必要的程序;
③无故死机
④屏幕上出现一些乱码。
其表现形式层出不穷,由于篇幅原因就介绍到此,在此需要一并提出的是,倘若因为病毒损坏了一些系统文件,导致系统工作不稳定,我们可以在安全模式下用系统文件检查器对系统文件予以修复。
2、由于某些元件热稳定性不良造成此类故障(具体表现在CPU、电源、内存条、主板)
对此,我们可以让电脑运行一段时间,待其死机后,再用手触摸以上各部件,倘若温度太高则说明该部件可能存在问题,我们可用替换法来诊断。值得注意的是在安装CPU风扇时最好能涂一些散热硅脂,但我在某些组装的电脑上却是很难见其踪影,实践证明,硅脂能降低温度5—10度左右,特别是P Ⅲ 的电脑上,倘若不涂散热硅脂,计算机根本就不能正常工作,曾遇到过一次此类现象。该机主要配置如下:磐英815EP主板、PⅢ733CPU、133外频的128M内存条,当该机组装完后,频繁死机,连Windows系统都不能正常安装,但是更换赛扬533的CPU后,故障排除,怀疑主板或CPU有问题,但更换同型号的主板、CPU后该故障也不能解决。后来由于发现其温度太高,在CPU上涂了一些散热硅脂,故障完全解决。实践证明在赛扬533以上的CPU上必须要涂散热硅脂,否则极有可能引起死机故障。
3、由于各部件接触不良导致计算机频繁死机
此类现象比较常见,特别是在购买一段时间的电脑上。由于各部件大多是靠金手指与主板接触,经过一段时间后其金手指部位会出现氧化现象,在拔下各卡后会发现金手指部位已经泛黄,此时,我们可用橡皮擦来回擦拭其泛黄处来予以清洁。
4、由于硬件之间不兼容造成电脑频繁死机
此类现象常见于显卡与其它部件不兼容或内存条与主板不兼容,例如SIS的显卡,当然其它设备也有可能发生不兼容现象,对此可以将其它不必要的设备如Modem、声卡等设备拆下后予以判断。
5、软件冲突或损坏引起死机
此类故障,一般都会发生在同一点,对此可将该软件卸掉来予以解决。
㈥ 《USB设备自动挂载的SHELL脚本实现》 脚本的功能如下: ● 运行脚本时,提示用户输入“y”或“n”,确定是
要实现U盘的自动挂载,linux系统本身首先要满足以下几点要求:
首先,内核要支持hotplug和可移动设备。
其次,系统要安装udev,hotplug,hal,dbus等组件。而且要启动这些服务,并将这些服务加入到开机自启动列表中。
在此基础上,当有U盘插入时,linux内核会首先发现,然后会通过/sbin/hotplug脚本在/etc/hotplug.d/default/usb目录中寻找以.hotplug结尾的可执行的脚本,并运行该脚本来实现USB设备的自动挂载。如果该目录下没有找到以.hotplug结尾的可执行的脚本,就会在/etc/hotplug.d/default目录下寻找。
因此要实现U盘的自动挂载,我们就可以通过编写一个hotplug脚本来实现。在绝大多数的嵌入式linux系统中,U盘被系统当作一种scsi设备来处理。我们编写一个名为scsi.hotplug的shell脚本程序,并将其放在/etc/hotplug.d中。
具体脚本代码参见下面链接,8楼兄弟的代码。
㈦ linux中 怎么建立挂载点 /mnt/usb
看看系复统认出的盘先制:
如果没有被认出,则加载模块
然后挂载:
#mount
-t
vfat
/dev/sdax
/mnt/flash_memory
看看系统认出的盘先:
查看系统分区情况,主要是看usb盘是否被系统认出,一般被认为sda*(即scsi盘)
#cat
/proc/partitions
如果没有被认出,则加载模块
进入模块目录,模块对于kernel来说是组件,需要则加载,因为耗资源
#cd
/lib/moles/2.4.x-x/kernel/drivers
#insmod
./scsi/scsi/scsi_mod.o
#insmod
./scsi/sd_mod.o
--此一般为USB硬盘(优盘)驱动
#insmod
./scsi/ide_scsi.o
#insmod
./usb/usbcore.o
#insmod
./usb/usb_uhci.o
#insmod
./usb/usb_ohci.o
再看看系统认的盘:
#cat
/proc/partitions
然后挂载:
#mount
-t
vfat
/dev/sdax
/mnt/flash_memory
使用完后卸载usb
#umount
/mnt/flash_memory
卸载模块,以便释放kernel的资源
#rmmod
./scsi/sd_mod.
㈧ linux内核模块如何开始和结束
GRLB 加载了内核之后,内核首先会再进行二次系统的自检,而不一定使用 BIOS 检测的硬件信息。这时内核终于开始替代 BIOS 接管Linux的启动过程了。
内核完成再次系统自检之后,开始采用动态的方式加载每个硬件的模块,这个动态模块大家可以想象成硬件的驱动(默认 Linux 硬件的驱动是不需要手工安装的,如果是重要的功能,则会直接编译到内核当中;如果是非重要的功能,比如硬件驱动会编译为模块,则在需要时由内核调用。不过,如果没有被内核硬件,要想驱动,就需要手工安装个硬件的硬块了。具体的安装方法会在后续章节中介绍)。
那么,Linux 的内核到底放在了哪里呢?当然是 /boot 的启动目录中了,我们来看看这个目录下的内容吧。
[root@localhost ~]#ls /boot/
config-2.6.32-279.el6.i686
#内核的配置文件,内核编译时选择的功能与模块
efi
#可扩展固件接口,为英特尔为全新PC固件的体系结构、接口和服务提出的建议标准
grub
#启动引导程GTUB的数据目录
initramfe-2.6.32-279.el6.i686.img
#虚拟文件系统(CentOS 6.x 中用initramfs替代了initrd,但功能是一样的)
lost+found
故boot分区的备份目录
symvers-2_6.32-279.el6.i686.gz
#模块符号信息
System.map-2.6.32-279.el6.i686
#内核功能和内存地址的对应列表
vmlinuz-2.6.32-279.el6.i686
#用于启动的Linux内核。这个文件是一个压缩的内核镜像
我们已经知道,Linux 会把不重要的功能编译成内核模块,在需要时再调用,从而保证了内核不会过大。在多数 Linux 中,都会把硬件的驱动程序编译为模块, 这些模块保存在 /lib/moles/ 目录中。常见的 USB、SATA 和 SCSI 等硬盘设备的驱动,还有一些特殊的文件系统(如 LVM、RAID 等)的驱动,都是以模块的方式来保存的。
如果 Linux 安装在 IDE 硬盘之上,并且采用的是默认的 ext3/4 文件系统,那么内核启动后加载根分区和模块的加载都没有什么问题,系统会顺利启动。但是如果 Linux 安装在 SCSI 硬盘之上,或者采用的是 LVM 文件系统,那么内核(内核加载入内存是启动引导程序 GRUB 调用的,并不存在硬盘驱动不识别的问题)在加载根目录之前是需要加载 SCSI 硬盘或 LVM 文件系统的驱动的。
SCSI 硬盘和 LVM 文件系统的驱动都放在硬盘的 /lib/moles/ 目录中,既然内核没有办法识别 SCSI 硬盘或 LVM 文件系统,那怎么可能读取 /lib/moles/ 目录中的驱动呢?Linux 给出的解决办法是使用 initramfs 这个虚拟文件系统来处理这个问题。
initramfe虚拟文件系统
CentOS 6.x 中使用 initramfs 虚拟文件系统取代了 CentOS 5.x 中的 initrd RAM Disk。它们的作用类似,可以通过启动引导程序加载到内存中,然后会解压缩并在内存中仿真成一个根目录,并且这个仿真的文件系统能够提供一个可执行程序,通过该程序来加载启动过程中所需的内核模块,比如 USB、SATA. SCSI 硬盘的驱动和 LVM、RAID 文件系统的驱动。
也就是说,通过 initramfs 虚拟文件系统在内存中模拟出一个根目录,然后在这个模拟根目录中加载 SCSI 等硬件的驱动,就可以加载真正的根目录了,之后才能调用 Linux 的第一个进程 /sbin/init。
Initramfs 虚拟文件系统主要有以下优点:
initramfs 随着其中数据的増减自动増减容量。
在 initramfs 和页面缓存之间没有重复数据。
initramfs 重复利用了 Linux caching 的代码,因此几乎没有増加内核尺寸,而 caching 的代码已经经过良好测试,所以 initramfs 的代码质量也有保证。
不需要额外的文件系统驱动。
其实大家只需要知道 initramfs 是为了在内核中建立一个模拟根目录,这个模拟根目录是为了可以调用 USB、SATA、SCSI、LVM、RAID 等硬盘接口或文件系统的驱动模块,加载了驱动模块后才可以加载真正的系统根目录。我们可以通过示意图 1 来表示这个过程。
[root@localhost~]#mkdir/tmp/initramfs
#建立测试目录
[root@localhost~]#cp/boot/
initramfs-2.6.32-279.el6.i686.img/tmp/initramfs/
#复制initramfs文件
[root@localhost~]#cd/tmp/initramfs/
[root@localhostinitramfs]#file
initramfs-2.6.32-279.el6.i686.img
initramfe-2.6.32-279.el6.i686.img:gzipcompressed
data,fromUnix,lastmodified:
WedApr1021:49:342013,maxcompression
#查看文件类型,发现这个文件是一个使用gzip命令打包的压缩包
[root@localhostinitramfs]#mvinitramfs-2.6.32-279.el6.i686.imginitramfs-2.6.32-279.el6.i686.img.gz
#修改文件的扩展名为.gz
[root@localhostinitramfs]#gunzip
initramfs-2.6.32-279.el6.i686.img.gz
#解压缩
[root@localhostinitramfs]#ls
initramfs-2.6.32-279.el6.i686.img
[root@localhostinitramfs]#file
initramfs-2.6.32-279.el6.i686.img
initramfe-2.6.32-279.el6.i686.img:ASCIIcpioarchive(SVR4withnoCRC)
#查看文件类型,使用cpio命令的压缩文件
[root@localhostinitramfs]#cpio-ivc<initramfs-2.6.32-279.el6.i686.img
#解压缩
[root@localhostinitramfs]#ll
总用量34512
drwxr-xr-x.2rootroot40964月2412:10bin
drwxr-xr-x.2rootroot40964月2412:10cmdline
drwxr-xr-x.3rootroot40964月2412:10dev
-rw-r--r--.1rootroot194月2412:10dracut-004-283.el6
drwxr-xr-x.2rootroot40964月2412:10emergency
drwxr-xr-x.7rootroot40964月2412:10etc
-rwxr-xr-x.1rootroot89624月2412:10init
drwxr-xr-x.2rootroot40964月2412:10initqueue
drwxr-xr-x.2rootroot40964月2412:10initqueue-finished
drwxr-xr-x.2rootroot40964月2412:10initqueue-settled
drwxr-xr-x.2rootroot40964月2412:10
initqueue-timeout
-rw-r--r--.1rootroot352353284月2412:09initramfs-2.6.32-279.el6.i686.img
drwxr-xr-x.9rootroot40964月2412:10lib
…省略部分输出…
#这就是initramfs虚拟文件系统中的内容,和根目录是不是很像
关机或者某些进程停止,对应的内核模块就会结束。更多知识请网络《Linux就该这么学》