[问题]关于不支持从usb存储设备启动的机器

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

[问题]关于不支持从usb存储设备启动的机器

#1

帖子 billbear » 2008-06-02 11:59

如题,在不支持从usb设备启动的机器上实现引导usb存储设备上的linux,一般是先想办法从其他地方加载内核,一是从内置硬盘加载内核(不考虑,因为必须修改内置硬盘上的东西),二是做一张启动光盘,把内核刻进去。但是每当我升级内核以后我就要重新刻一张光盘否则就只能继续使用旧内核,有什么办法可以避免这样做?我是说,我先加载旧内核,usb设备可用之后再到外部存储里加载那里的新内核,可以做到吗?请教各位大师。
我还试过另一种方法,在U盘里做一个小的FAT分区,光盘里做一个dos,在dos里加载USB驱动,然后到U盘FAT分区里运行linld(类似于以前的loadlin,但是loadlin早就不能加载如今的内核了),加载也拷在FAT分区里的内核。但是ubuntu起到一半就死掉了,不知道为什么。linld最后更新是在2004年,皮体。
据说grub2是在grub里就支持usb,而不是等到内核出来以后,有人试验过吗?
谢谢。
上次由 billbear 在 2008-06-02 20:47,总共编辑 1 次。
头像
qiang_liu8183
论坛版主
帖子: 10699
注册时间: 2006-09-10 22:36
系统: Arch Debian
来自: 北京

#2

帖子 qiang_liu8183 » 2008-06-02 12:09

如果是AWD的BIOS可以用CBROM修改BIOS添加USB Boot模块来让老主板也支持USB启动
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

#3

帖子 ptptptptptpt » 2008-06-02 16:46

这个问题的本质是 在引导器中添加usb支持 ,这个问题已经有过很多讨论和努力,目前没有较完善的结果

从传统上讲,对 USB 端口的支持应该是主板bios 的任务,引导器 都是调用 biso中断 来访问设备,

所以我的观点是,让时间淘汰掉 不支持usb启动和对usb启动支持不好的主板,而移动系统的流行会促进这一进程
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

#4

帖子 ptptptptptpt » 2008-06-02 16:53

我想起来了!!grub4dos 中包含一个在 linux 下执行的 grub 程序 ,以前我从来没觉得它有什么用,现在可以用上了

可以在光盘中刻一个小型linux,启动后认到usb设备后,运行那个grub程序,进一步加载 u盘中的内核和initrd
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#5

帖子 billbear » 2008-06-02 22:03

ptptptptptpt 写了:这个问题的本质是 在引导器中添加usb支持 ,这个问题已经有过很多讨论和努力,目前没有较完善的结果

从传统上讲,对 USB 端口的支持应该是主板bios 的任务,引导器 都是调用 biso中断 来访问设备,

所以我的观点是,让时间淘汰掉 不支持usb启动和对usb启动支持不好的主板,而移动系统的流行会促进这一进程

macbook不支持!因为它根本没有bios。你不是要我把macbook淘汰掉吧:shock: 。时间会逐渐淘汰bios。
其实我的目的主要是能在不改变内置硬盘里任何东西的条件下在mac上实现从U盘引导ubuntu。不能从u盘引导ubuntu不是mac的错。mac使用更先进的EFI,只在EFI里模拟了一个假的功能简陋的bios,没有加进从u盘和移动硬盘启动需要从bios引导的OS的功能。要怪只能怪grub2迟迟不发布,还不能实现从EFI的原生引导。
有意思的是mac的模拟bios支持从usb-cdrom启动。所以我的如意算盘是,把U盘的一小部分量产成cdrom来做启动盘。这样虽然理论上是从光盘启动,实际上我带的只是一个usb stick. U盘剩下的部分装ubuntu。我可不希望经常重新量产。量产是破坏性的,它要把我u盘上的东西全部干掉然后重新写进一个iso。
如果实现,这u盘的启动通用性将很好,支持usb-cdrom的机器是最多的
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#6

帖子 billbear » 2008-06-02 22:22

pt*6: 等待你的研究成果
:lol:
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26

#7

帖子 windwiny » 2008-06-03 8:38

在本地硬盘上装 grub, 添加 移动硬盘上的 启动项目就可以启动
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#8

帖子 billbear » 2008-06-03 9:09

windwiny 写了:在本地硬盘上装 grub, 添加 移动硬盘上的 启动项目就可以启动
不是吧,必须在本地硬盘把内核起来才能认移动硬盘吧。
如果单单grub就认移动硬盘,这个问题就解决了。
头像
yaska
帖子: 1169
注册时间: 2007-10-28 21:35

#9

帖子 yaska » 2008-06-03 9:27

billbear 写了:
windwiny 写了:在本地硬盘上装 grub, 添加 移动硬盘上的 启动项目就可以启动
不是吧,必须在本地硬盘把内核起来才能认移动硬盘吧。
如果单单grub就认移动硬盘,这个问题就解决了。
我试过在本地硬盘装grub4dos,部分机器可以找得到U盘.

这个问题在无忧启动,数码之家,grub4dos的论坛,讨论得多点。
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

#10

帖子 ptptptptptpt » 2008-06-03 9:34

yaska 写了:
billbear 写了:
windwiny 写了:在本地硬盘上装 grub, 添加 移动硬盘上的 启动项目就可以启动
不是吧,必须在本地硬盘把内核起来才能认移动硬盘吧。
如果单单grub就认移动硬盘,这个问题就解决了。
我试过在本地硬盘装grub4dos,部分机器可以找得到U盘.

这个问题在无忧启动,数码之家,grub4dos的论坛,讨论得多点。

在本地硬盘装grub4dos 可以找得到U盘 的前提是 主板bios支持usb启动,或者说,需要主板bios 中集成有usb驱动
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

#11

帖子 ptptptptptpt » 2008-06-03 9:50

billbear 写了:
ptptptptptpt 写了:这个问题的本质是 在引导器中添加usb支持 ,这个问题已经有过很多讨论和努力,目前没有较完善的结果

从传统上讲,对 USB 端口的支持应该是主板bios 的任务,引导器 都是调用 biso中断 来访问设备,

所以我的观点是,让时间淘汰掉 不支持usb启动和对usb启动支持不好的主板,而移动系统的流行会促进这一进程

macbook不支持!因为它根本没有bios。你不是要我把macbook淘汰掉吧:shock: 。时间会逐渐淘汰bios。
其实我的目的主要是能在不改变内置硬盘里任何东西的条件下在mac上实现从U盘引导ubuntu。不能从u盘引导ubuntu不是mac的错。mac使用更先进的EFI,只在EFI里模拟了一个假的功能简陋的bios,没有加进从u盘和移动硬盘启动需要从bios引导的OS的功能。要怪只能怪grub2迟迟不发布,还不能实现从EFI的原生引导。
有意思的是mac的模拟bios支持从usb-cdrom启动。所以我的如意算盘是,把U盘的一小部分量产成cdrom来做启动盘。这样虽然理论上是从光盘启动,实际上我带的只是一个usb stick. U盘剩下的部分装ubuntu。我可不希望经常重新量产。量产是破坏性的,它要把我u盘上的东西全部干掉然后重新写进一个iso。
如果实现,这u盘的启动通用性将很好,支持usb-cdrom的机器是最多的
呵呵 无意淘汰mac ,也不是我想淘就能淘的 :) 一切决定于市场,决定于用户

不过我认为淘汰 bios 所需的时间恐怕会长于你的估计和希望,因为我看不到让它迅速消失的决定性因素 —— 采用新技术需要付出成本,而旧的还用的好好的
头像
独孤
帖子: 838
注册时间: 2008-02-02 13:06
来自: 寶能科技
联系:

#12

帖子 独孤 » 2008-06-03 10:11

LS的几个都是启动强人。 8) 8)
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#13

帖子 skyx » 2008-06-03 11:10

不强的人只好学习一下概念,看下热热闹:
Linus Torvalds offered his views on EFI, the Extensible Firmware Interface beginning by describing it as "this other Intel brain-damage (the first one being ACPI)". EFI is a replacement for BIOS, originally designed for use on the ia64 architecture though since adopted by other computers, including Apple's Intel-based Macs. Linus went on to explain, "the original EFI code in the kernel basically duplicates all the BIOS interfaces (ie everything that looks at a memory map comes in two varieties: the normal and tested BIOS e820 variety, and the usually broken and hacked-up EFI memory map variety). Translating the EFI memory map to e820 is very much the sane thing to do".

Linus continued in a followup email, "don't get me wrong - the problem with EFI is that it actually superficially looks much better than the BIOS, but in practice it ends up being one of those things where it has few real advantages, and often just a lot of extra complexity because of the 'new and improved' interfaces that were largely defined by a committee." He went on, "so EFI has this cool shell, a loadable driver framework, and other nice features. Where 'nice' obviously means 'much more complex than the simple things they designed in the late seventies back when people were stupid and just wanted things to work'. Of course, it's somewhat questionable whether people have actually gotten smarter or stupider in the last 30 years. It's not enough time for evolution to have increased our brain capacity, but it certainly _is_ enough time for most people to no longer understand how hardware works any more." As for BIOS, Linus noted, "not that I'd ever claim that the BIOS is wonderful either, but at least everybody knows that the BIOS is just a bootloader, and doesn't try to make it anything else."

Like say if you have a hardware problem, right then you just file a bugzilla on kernel.org. You figure out who maintains that part of the kernel. You send a mail to the list. It gets fixed. Everything is happy.

With a BIOS then you don't have the source code so it's pretty hard to figure out what the problem is. But you swap a couple motherboards out and you're pretty sure that you don't just have defective hardware. Then you email the mobo manufacturers. They ignore you. Then you email them 3 more times and threaten to drop all their business. So eventually they respond, but they don't know anything about it. Those are just tables that they get from nvidia. They can't come out with a new release of the BIOS just for that alone. The nvidia guys who designed the table have moved to Gambia. So you're basically screwed.

With EFI it's like that but even more. Hardware manufactures are talking about how they can implement drivers in the EFI firmware so that it will work on every OS. But the problem with that is that it won't work on any OS...

Also intel has always been completely insane with regards to BIOSes. I remember one of there systems that took 30 minutes to update the firmware. And it wasn't like you could start it and then come back 30 minutes later, you had to be right in front of the system to answer questions for 30 minutes.

I was so hoping that EFI would die with the Itanium...
no security measure is worth anything if an attacker has physical access to the machine
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#14

帖子 billbear » 2008-06-03 12:16

我对efi也是一无所知,我只知道要bless一个咚咚它就能启动。好像我是上帝似的
如果我真懂efi,就hack它,在那个假bios里加进移动硬盘的支持
苹果太烂了,做个假bios也不做全点,只做到usb光驱,等它放出固件更新好像也不太可能,它根本就没打算把bios做好
bean
帖子: 238
注册时间: 2008-06-03 12:25

#15

帖子 bean » 2008-06-03 12:28

你MacBook的固件是64位还是32位的?
回复