如何安装出一个 Linux -to-go?做到类似 Windows-to-go 需要怎么操作?

2023-12-19 17:15:49 +08:00
 cathedrel
最近两年一直是用一个高速 u 盘装操作系统,设置好的东西可以随身带走,蛮方便的。

但是最近安装好的最新版的 manjaro 系统在换了机器后就无法正常启动了,提示的文字好像是驱动不能正常加载(最早开始这么用操作系统的时候我记得在一台机器上安装好的 Linux 系统可以直接在别的机器上启动)

那么现在安装 Linux 操作系统到 u 盘的时候需要怎么操作才能确保在别的机器上也能正常启动?

还有一个问题就是:已经在 u 盘上安装好的系统,能不能通过什么方式给这个系统“灌注”、“添加”所有常见的 Linux 驱动、好让这个系统在别的机器上也能正常启动?毕竟调试好的系统,花了很多时间才做到用的顺手,再重新弄,想想都累

谢谢大家
3141 次点击
所在节点    Linux
39 条回复
huntagain2008
2023-12-20 09:32:08 +08:00
我非计算机专业。我也曾使用固态 U 盘 Chipfancier 作为系统盘,但稳定的关键一是固态 U 盘稳不稳(了解过用过的人用了 3 年没出问题),二是系统兼容性稳定性好不好(楼上用的是 Ubuntu )。我当时使用的是 Arch Linux ,但在一次更新后,i3-9100 的机器出现问题,而使用 i5 等其他机型则正常。最终,我只好将系统更换为 Kubuntu ,慢是慢一点,能用。
samhjn
2023-12-20 10:39:44 +08:00
在 initramfs 里面多打包一些常用驱动就可以了。有些发行版可能只会打当前机器需要用到的驱动,有的发行版则会多打包一些。
libook
2023-12-20 10:58:25 +08:00
你试试开机进入 Grub 菜单(忘了是 ESC 还是 Shift 来着),Advanced 里面选 recovery mode ,想办法进系统。进去后 Manjaro Settings 里降低内核版本试试。
现在最新内核是 6.6 ,我用有一些软件或驱动的兼容问题,降低到 5.15LTS 之后就好了。估计得等软件、驱动啥的适配新内核,或者内核完善对软硬件的兼容性。
zuiwu
2023-12-20 12:27:36 +08:00
我目前是通过 dism 将当前系统每日备份到移动硬盘,使用时从移动硬盘恢复到其他设备,但是比较麻烦
zuiwu
2023-12-20 12:28:13 +08:00
@zuiwu 但是 dism 备份时好像可以将.wim 转换为可从硬盘启动的格式,这个还没具体研究。
zuiwu
2023-12-20 12:29:08 +08:00
@zuiwu 看错了,忽略我
cutecore
2023-12-20 13:32:26 +08:00
@sylxjtu 嗯嗯,13 年玩过,可以
tallest
2023-12-20 14:11:30 +08:00
@cathedrel 你漏了啥步骤吧,那玩意儿启动确实就和官网一样简单啊,我去年疫情封在朋友家的那个月就用的这玩意儿
cathedrel
2023-12-20 15:07:09 +08:00
@cyp0633
@tallest
最近一次玩是半年前,在华硕的笔记本上和我自己的台式机还还是不能正常启动
cnbatch
2023-12-20 15:58:25 +08:00
@joyanhui Windows 的驱动也是运行在内核态的,并不是用户态。所以准确来说,对应的 Linux 概念是“树外驱动”,理解起来就是:Windows 主要靠“树外模块”。
cnbatch
2023-12-20 16:04:20 +08:00
OP 这个目标对于大多数不那么新的硬件其实直接就能用,但如果硬件很新,那就可能需要使用第三方驱动了,而这种情况下也不太可能知道应该预先下载、使用哪些驱动。

如果对应机器需要闭源驱动,那么制作“to-go”时甚至都不知道应该用什么驱动,除非是 NVIDIA 这种过于明显的(不过 NVIDIA 也有社区驱动)。
cathedrel
2023-12-20 16:51:10 +08:00
@Gldwolf 这个 chipfancier 是个硬件啊?我还以为是某个软件
yanqiyu
2023-12-20 18:09:37 +08:00
一样的装,initrd 生成的时候用 hostonly=no 之类的参数(不同的工具叫法不一样,总之就是在 initrd 里面放进去所有可能对启动有必要性的模块)
xuanzc880
2023-12-21 00:13:49 +08:00
manjaro 是基于 arch 的,默认内核生成策略是只在内核引导中加载更新内核时当前电脑使用的驱动,默认的 grub 应该还有一个 fallback 后缀的启动项,这个内核包含了所有驱动,你用这个启动项启动试试.
cathedrel
2023-12-21 00:16:10 +08:00
@samhjn 怎么打包驱动?能给点方向吗?
cathedrel
2023-12-21 00:19:10 +08:00
@yanqiyu “initrd 生成的时候”,我在安装 linux 的时候从来没有遇到过指定 initrd 的时候(都是图形界面安装或者 debian 那种文字安装界面),怎么在安装的时候制定 initrd ?
YGHMXFAL
355 天前
这个我专业

①你需要专门为此情景而打造地 LIVE 发行版,搜索关键词“LINUX LIVE PERSISTENCE”

然后更进一步,你可以拿 GRUB2 的子组件 mkstandalone 来生成一个内嵌 grub.cfg 的 EFI(今年还在使用 legacy 模式吗)

这样就可以打造一款解压即用地 LINUX TO GO 了

②我直接给你推荐几款吧

antix/debian live

systemrescuecd

porteus

③PS:其实不限于特定发行版,任何发行版都可以搞成你所谓地 LINUX TO GO 方案,无非就是几个问题:

[A]启动所需地 kernel+initramfs 存储在哪儿?GRUB2 如何找到它们?根据 FS-UUID/FILE/DEVICE-ID?

[B]PERSISTENCE 分区是哪个?GRUB2 如何找到它们?根据 XXX?

[C]LIVE 模式下所需要地特定 boot 参数,这个每款发行版都不同,需要在官方 man 中查找
YGHMXFAL
355 天前
#36 debian 在安装过程中会让你选择,“仅生成适用于当前硬件的 initramfs”还是“在 initramfs 中包含所有驱动”,个人建议永远选择后者,你不会缺这么一点儿存储空间吧
YGHMXFAL
355 天前
我曾经高强度使用 kali live persistence 长达 1 坤年,甚至源里的几款 FSP/RTS 游戏都畅玩,没有启动不了地机器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1001717

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX