不使用 initramfs,如何启动 Linux

2018-10-28 19:43:50 +08:00
 station

我之前问题帖子有人说到来了无 initramfs/initrd

受启发我找到了 https://www.zhihu.com/question/30599860/answer/49143877

我用 efi-stub 代替 grub

裁剪的内核基础驱动(硬盘驱动,文件系统)和一些硬件驱动都编译进内核了

我也知道是错误问题是 root device,但找不到头绪

5654 次点击
所在节点    Linux
55 条回复
henglinli
2018-10-30 00:12:30 +08:00
@station 就差一点了。看图片应该时 init 找不到。你可以 mount 到另外的虚拟机上看看 init 究竟是在什么位置?我当年装 gentoo 时候可是把 gentoo.org 上到安装相关文档都读了的,要有耐心。没有百度账号不能下载百度云盘的文件,最近百度才改的。/sbin/init 也不行的原因可能是这是个符号链接,能确定 /usr 和 /是同一个分区吗?
wwhc
2018-10-30 04:24:28 +08:00
楼主用其它系统挂载后查看硬盘分区到底是怎么回事:
lsblk -o +fstype,label,uuid,partuuid
station
2018-10-30 06:12:55 +08:00
@henglinli /usr 和 /都是单独的分区
station
2018-10-30 06:17:48 +08:00
lrwxrwxrwx. 1 root root 22 10 月 20 08:56 /sbin/init -> ../lib/systemd/systemd

.. 这是?
station
2018-10-30 06:20:02 +08:00
‘".. " 这是?
station
2018-10-30 06:36:54 +08:00
CONFIG_CMDLINE="root=PARTUUID=c0fb10a1-884b-412a-a5ee-198e7ff9d157 rootfstype=xfs rw LANG=zh_CN.UTF-8 init=/usr/lib/systemd/systemd
station
2018-10-30 06:39:05 +08:00
内核配置文件 https://send.firefox.com/download/69e20fcbcd/#BQff_c-3IsvbuGoq-CBSZA

46 楼的回复,之前用过,不行
likuku
2018-10-30 17:44:05 +08:00
@henglinli Gentoo 嘛...想起来当年刚参加工作,上工第二天,对口同事就手把手教我如何快速安装(现成 gentoo 用 tar 打的包,自带内核源码),简单直接粗暴,10 分钟装完,然后启动时让前辈尴尬了...找不到硬盘控制器。好在一起合作 livecd 下重编了内核,把硬盘控制器驱动加进去就 OK 了,还是蛮顺利的。那时还是 2007 年,systemd 似乎还没有。
likuku
2018-10-30 17:47:08 +08:00
@station

[CONFIG_CMDLINE="root=PARTUUID=c0fb10a1-884b-412a-a5ee-198e7ff9d157 ] 这段试试改成 /dev/sda1 之类风格的吧。

死马当活马医:/etc/fstab 也编辑下,改为 /dev/sdaNumber /mountPoint 这样类似 风格的吧。
henglinli
2018-10-30 18:01:12 +08:00
@station 首先挂在其他分区是由 systemd 执行的,所以要确保更分区下有 systemd 能顺利执行的所有文件资源,万一 systemd 需要 /usr 呢?






(然后我觉得得自己确认下。我估计引导一个..都不明白的有点新手的方式应该再浅显一定,就找到了这个 https://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken/
。我没有看完,但是看标题我知道你应该把 /usr 和 /合并,即使不能解决你当前这个问题。)


既然觉得自己不需要 initramfs,它做了什么想必你也知道些。说一下我对分区的认识。很久以前磁盘空间是很小的,以至于一个 /下面需要很多磁盘。分区组织的由管理员规划,/usr 一个盘、/硬盘。万一需要 1 万个呢?管理员这么玩估计有点慌,在他慌之前就应该有 lvm 了,现在是 lvm2,估计没 lvm3 了。因为已经有支持分卷功能的文件系统。比如 btrfs,磁盘空间不够了,你给再他加一个盘就完了。后面的事它会处理。
这也是我喜欢 btrfs 的原因之一。最后,磁盘空间不够的情况下再考虑分区,做到用户 /home 和系统 /分区就够了。
henglinli
2018-10-30 18:08:56 +08:00
@likuku 我用了很久,不喜欢他一点是,如果 portage 出问题还得会 python,很无助 google 后“重装”了好几次。当然 gentoo 的重装有点不一样。
henglinli
2018-10-30 18:12:51 +08:00
#50 补充,有没有 lvm1,其实我也不知道。接触到过这玩艺儿,但是没有实质去了解过。lvm2 万一是 lvmm 的意思我就尴尬了。特此补充。
likuku
2018-10-30 18:38:00 +08:00
@henglinli 独立 / 分区,和其它 /home /usr /var 什么 分开,个人用户其实无所谓,大不了 liveCD 或者拆硬盘去修,
服务器就比较麻烦,只用一个 / 的话,有可能突发暴增的 log 阿,core dump 什么 直接爆破 / ,
然后系统就死了,远程修起来就很烦了。

gentoo 也滚死过好几次,portage 也搞死过,有次是直接从官网的 stage3 里 /其它同版本还在跑的服务器上 提取的,直接在线 复制替代,lib 什么搞的灾难不够猛时,这么救还是很大机会可以救回来。LiveCD 搭配 tar 自己作包,来快速安装,会玩之后,应对几乎所有 Linux 发行版都 OK。

btrfs 这个真得踩坑好几次,至今还是有些怕。
station
2018-10-30 22:40:14 +08:00
@likuku
@henglinli
关于没有挂载其他分区,这点之前从启动所提示的信息上我也想过,今天看到你们的回复,我重做系统和分区,将 /和 /usr 还是有其余必要的挂载点分在一个分区了,编译后成功启动了😀,这次踩坑虽然消耗较多的时间与精力但增加了我的知识积累,还是有所值

https://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken 这个有空细细读下

不知道 gentoo 是怎么做的,分区这块
station
2018-10-30 22:51:21 +08:00
非常感谢二位 @likuku @henglinli

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

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

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

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

© 2021 V2EX