为什么在使用LiveCD/LiveUSB和安装Ubuntu之间会有变化?

这里有一些我在使用Ubuntu LiveCD或LiveUSB时遇到的奇怪经历:
1)我曾拥有一台原始的Chromebook(CR-48)。不久后,我擦除了ChromeOS,只安装了Ubuntu 12.04.0。它运行得非常好。大约一年后,我弄坏了一些东西,然后使用12.04.3版本的LiveUSB重新安装Ubuntu。LiveUSB完美地运行 - 屏幕分辨率、wifi和触控板都正常工作。我进行了两次安装(一次是通过更新安装,一次是从USB驱动器中直接安装),但两次安装后屏幕分辨率、wifi和触控板都无法工作。
最后,我下载了12.04.0版本,安装后再升级到12.04.3,结果又一切都恢复正常了。
2)我购买了一台东芝Portege z935,LiveUSB工作得非常好,特别是wifi。但是安装后,wifi变得非常慢,无法加载任何网页。答案是蓝牙与wifi发生了冲突,必须禁用蓝牙才能使wifi正常工作。然而,在LiveUSB版本中,这两个功能都可以正常启用,没有问题。
所以我的问题是,为什么会发生这种情况?为什么从LiveUSB版本运行一切正常,但在系统安装后却出现故障?有没有一种不同的安装Ubuntu的方式,可以使得安装的内容与LiveUSB版本完全相同(驱动程序、设置等)?安装过程中是否存在我可以通过某种方式覆盖的假设?
4个回答

我在给一个朋友安装Ubuntu时有过类似的经历。LiveUSB一开始就能正常工作,但是当Ubuntu启动后,他的系统出现了严重的撕裂问题,这是由于安装的视频驱动程序引起的。他的系统无法使用。
所以,我的猜测是,LiveUSB使用了一些非常通用的驱动程序来支持你的所有硬件,它们可能能够平均地工作。
在安装过程中,Ubuntu会找到适合你硬件的精确驱动程序,并将其安装到硬盘上。这样,当你启动时,你的硬件就能与新驱动程序的软件进行通信,而这可能会破坏一些在LiveUSB中运行得更好的功能。
免责声明:这只是我的猜测,我没有任何证据来支持它。

2我会把这个看作是一个有根据的猜测。 - Elder Geek

理论上,你可以使用ISO作为源文件,将现场媒体复制到硬盘上,并将/dev/sdX作为目标位置,使用dd命令来完成。但这样做会得到一个现场媒体而不是一个安装文件。我想你可能不会喜欢最终的结果。

LiveBoot/CD 运行在一个名为 RAM 磁盘的虚拟磁盘上。简单的理解方式是,它使用你的一部分 RAM 作为硬盘(因此与你的实际磁盘分开)。
实际使用的驱动程序不一定是完整版 LiveBoot 上安装的驱动程序,而是一个“简化”版本。当我这么说时,我的意思是驱动程序不一定会特别适应你的机器,而是通用驱动程序,可以在“每个”显卡上工作(就像启动到安全/回退模式时会加载没有高级设置的驱动程序一样)。这样做是为了实现兼容性,使 LiveBoot 成为任何计算机上可完全使用的系统。
在安装时,你的操作系统安装程序会查看你的系统上安装了哪些硬件以及可用的硬件驱动程序。然后安装并将你的系统指向那些已安装的驱动程序。
可能的解决方案:
如果您正在安装这个作为一个新系统(即您不介意尝试找出哪种方法可以工作),您可以尝试另一种版本,看看此版本的驱动程序/设置是否有效。 可能的替代方案:您可以进行服务器安装,并只安装所需内容,但这需要研究,可能会让人感到有些压力,而且并非必要。
至于下面的回答(我写这篇文章时),它们都可以整合在一起,可能形成一个答案。
您可能还希望关注/考虑以下几点:
制作一个从头开始的LiveCD,或者如果你知道LiveCD上的驱动程序,你可以定制一个适合个人使用的LiveCD(并更改正在安装的驱动程序)。
(根据ElderGeek的回答中关于将LiveBoot放在物理磁盘上的"How To")你需要:
- 为LiveCD镜像创建一个分区(使其可引导) - 使用`dd`将LiveBoot .iso文件放到新分区上(示例格式为`dd if=/dev/sdc1/nameof.iso of=/dev/sda1/`)。查看`man dd`,因为`dd`有不同的选项可供使用。 - 修改GRUB设置,指向包含LiveBoot的分区(在终端中键入`info -f grub -n 'Simple configuration'`并阅读)。我怀疑`sudo grub-mkconfig`会将其识别为操作系统。 - 查看this(关于如何使LiveBoot信息持久化),你需要将所有USB的地方改为你的分区所在位置。
这样做可能仍然会遇到一些问题,比如休眠或其他与LiveCD相关的问题。
也许更容易的方法是加载LiveBoot/CD,确定正在使用哪些驱动程序(使用`lsmod`或`cat /proc/modules`查找一些信息),然后尝试在已安装的版本上使用这些驱动程序。

两个问题,RAM和驱动程序。由于LiveCD是运行在RAM上的,这可能会成为一个问题。此外,还有驱动程序和实际硬件冲突。LiveCD实际上并没有安装在计算机上,你是从它启动的。这就是为什么当我安装Ubuntu后无法使用休眠功能的原因。