initrd,电脑开机出现loading system with initrd什么意思
来源:整理 编辑:智能门户 2025-01-27 14:04:39
本文目录一览
1,电脑开机出现loading system with initrd什么意思
显示 登陆初始化的意思。原因主要可能是引导问题,若低配置,慢点不是问题!着重检查一下硬盘:方法是先断开硬盘的电源和数据线,开机看能不能进入CMOS,开一会看正常不正常.
2,ubuntu1404LTS系统根目录下initrdimg文件有什么用
initrd.img文件是系统启动时用到的一个“最小系统”。其实是个压缩包,解开里面就是一堆系统目录和一些必须的基本程序和启动脚本。如initrd文件出问题则会导致系统无法启动。楼主说的分区什么的估计是自动用了什么磁盘工具打开initrd文件吧,initrd.img只是个压缩文件并不是分区。
3,如何生成initrd
看你的问题,你是第一次做这个东西吧首先,你内核编译过了吗,在内核目录:/usr/src/linux-xxxx目录下,运行:make mrproper (对内核进行清理)make menuconfig(对内核进行裁剪)mae depmakemake madulesmake modules_installmake install完成这些后,才能进行mkinitrd命令,否则的话你用原来的那些做这个,根本没什么意义,总不能只是熟悉一下命令吧linux可以放置多个内核,先把内核安装上,然后再执行你以前的命令,mkinitramfs这个命令会取/lib/modules/内核版本号,里面取必要的驱动模块的,你不安装也不会生成正确initrd.img。不用必须更新内核,至于你更不更新内核,看你的意思了,愿意更新就更新,不更新就删掉安装就是了。
4,那位高手讲下Linux使用initrd的原因什么情况下要用什么情况下可
主要是为了在内核启动之后能够判断哪些硬件驱动需要加载,哪些不需要,文件系统有没有问题等等,最终使得根分区能顺利加载在scsi和sata设备上启动,usb启动盘,无盘服务器等都需要initrd来做判断,这样可以提高linux内核的通用性,所以大部分发行版都是用initrd的但是如果自己编译内核,不需要考虑通用性,可以将scsi,sata和usb等开机所需要的模块编译进内核,只要内核启动时,那几个驱动程序随之一起启动,那么就不需要initrd了 ps:bootloader加载内核是直接取地址,bootloader自己带了一部分驱动的功能,但不能被称作驱动,因为bootloader算不上一个完整的操作系统grub和lilo的具体操作过程比较复杂,我也不太清楚,但你可以去看看u-boot和vivi的文档或源码,相对比较简单
5,如何操作initrd0img文件
例子:title Install Ubuntu 8.10root (hd0,0)kernel (hd0,6)/vmlinuz boot=casper iso-scan/filename=/ubuntu-8.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8initrd (hd0,6)/initrd.gz第一行root(hd0,0) 意思是指定第一快硬盘,第一个分区为当前引导目录!第二行:kernel 后面跟的是系统内核引导文件!加传递给内核的参数!第三行initrd 是虚拟磁盘文件!为了得到广泛硬件的支持!这里需要虚拟磁盘!因为在系统引导之前也许硬盘是不可用的 所以先虚拟一快磁盘出来 放引导文件!然后等引导到一定的步骤再加载硬盘!你下的是livecd版的,所以不行。把系统解压到fat32格式的分区根目录里。然后命令:root (hd0,x) //你解压的分区kernel /isolinux/vmlinuz0 root=live:/dev/sdan liveimg quiet rhgb rootfstype=auto //那个n是上头命令的x再加一initrd /isolinux/initrd0.imgboot
6,linux下的initrd问题
首先来说,很多驱动程序并没有被编译进内核,而是作为一个LKM存在,这样减轻了内核的负担也增加了驱动加载的灵活性。 再来,对于initrd---全名init ram disk,它确切的来说使用一个文件模拟的一个磁盘分区,这个文件里面就放了一些必要的程序库,以及驱动程序模块。 在linux驱动过程中,它最终要去挂载真正的根分区(物理分区),那么首先就要在内存中加载内核镜像和initrd文件,解压initrd文件以后,然后挂载这个模拟的文件系统,这个时候,就相当于用内存模拟了硬盘,而还没有真正接触到物理硬盘。所以,ram disk由此而来。然后,内核在ramdisk下,加载硬盘驱动,如scsi的,然后才能控制硬盘,挂载分区,并切换到真正的根分区之上…… 所以,initrd起到一个中间转换的作用,但据我所知,initrd也并非必须,比如ide的硬盘驱动直接编译进内核…… 你想,假如硬盘驱动没有被编译进内核,那么在启动操作的系统的过程中,需要驱动,但是驱动程序又存放在了硬盘之上,但是你又没有加载硬盘驱动不能访问硬盘,则不是陷入了一个矛盾的问题嘛,所以,用内存模拟硬盘来存放驱动,然后加载就可以访问硬盘了……不能说不佩服这些大神 说了个大概,可以多多交流一下 。不明白可以high我因为 Linux 内核是巨内核,也就是宏内核。所有驱动如果放入内核,会导致占地面积很大。所以,把内核驱动独立出来,再需要的时候载入就可以很好的解决内核的内存占用和压力。内核里面只存放最少量的必备驱动。不过驱动独立出来,有个问题就是什么时候载入。计算机在开机时,内存里面没有任何东西,驱动都在硬盘上。而硬盘控制器(也就是所谓的硬盘驱动)也在硬盘上。之后就有一个先有鸡还是先有蛋的问题了:读取硬盘需要驱动,但驱动在硬盘里。这样实际就不能读取驱动了。这样,就有了 initrd ,initrd 的作用是把一些数据存储在一个特殊格式文件里面,这个文件会随内核载入时一同载入到内存里面这样,内核启动时,在还没有读取硬盘里面的驱动的时候,就已经有了一个可以读取的地方来读取数据(initrd 也需要驱动哦,不过这个驱动明显比所有硬盘控制器的驱动要小,地球上的主板芯片有很多种,还有很多其他的存储设备可以启动 Linux ,这些设备的驱动不可能都直接扔进内核里面)。这就是 initrd 的作用,也就是 Linux 在内核启动阶段就可以提供一个存储空间来存放数据。这些数据不一定是驱动,也可以是别的东西,乃至一个完整的 Linux 根目录。至于“主要是平时我们插入硬盘时直接硬盘自动安装驱动为什么在linux里就不能自动安装驱动还需要把相应的驱动程序拿出来单独放在一个地方?!”我真没看懂你在说什么。我觉得你连驱动是什么都还不知道吧……这里将要说的是包含根分区加密的linux启动的一个问题.linux开机的时候,加载initrdxxxxxx.img,然后运行其中的init脚本.init脚本中启动设备事对根分区进行解密,解密命令的分区对象写死,(在安装的时候就写死了。假设为scsi设备/dev/sdc2)解密后进行正常的启动操作。问题出现了:scsi设备的顺序/dev/sdc在scsi硬盘设备的插拔更换接口的时候会发生变化,比如原来是/dev/sdc,在拔掉一个scsi设备后,/dev/sdc在新一轮的开机映射时成了/dev/sdb此时,该加密的linux启动脚本init中仍然查找/dev/sdc2进行解密,结果无法解密,无法启动。。是否有唯一的分区id(不仅仅是scsi硬盘,还有ide,还有sas等不同的所有硬盘类型是否都有该id值)在开机的时候,此时只有nash的环境下,能够仅依赖nash的简单命令使用并且匹配查找到相应的分区?来避免这种分区映射名字变化造成的开机无法开机的问题?忘采纳
文章TAG:
电脑 出现 loading initrd 电脑开机出现loading system with initrd什么意思
大家都在看
-
自动化设备静电过大怎么消除,如何消除静电?
2023-12-15
-
贴片,什么是贴片
2023-12-22
-
数据与信息关系是,数据信息:数据或不能说是信息
2023-12-26
-
浙江设计自动化专业大学,大学自动化设计专业有哪些?
2024-02-25
-
rca自动化组装设备,非标自动化设备有哪些?
2024-03-03
-
硫化碳,硫化碳的化学符号
2024-04-05
-
山东电气自动化专业排名,电气自动化专业院校排名
2024-06-09
-
生产机器人工厂,超级机器人工厂
2024-08-18
-
伐竹自动化设备,景洪竹木加工自动化设备
2024-09-09
-
机器人教育需要什么,码高机器人教育怎么样
2024-09-13
-
扫地机器人吸尘效果
2024-09-29
-
络合作用,传荷络合作用
2024-11-09
-
485电表,远程抄表485电表是什么样的
2024-12-09
-
minimal,在数学里minimum和minimal有啥区别吗
2025-01-04
-
自动化不锈钢接头设备,不锈钢快速接头你想知道什么?
2025-01-09