通过 U 盘上的 ISO 光盘镜像安装 openSUSE Tumbleweed

对 M$ 不遗余力地推广的 Windows 10 有点小小的失望,本想安心用 Win 7 的,可是却被逼得不安生。就还是转向 Linux 吧,拾起了好久不用的 openSUSE。openSUSE 现在分两个支线了,一个是滚动更新的 Tumbleweed,一个是传统的长期支持版 Leap。想想我也就是日常使用,就算偶尔出些问题也没有太大影响——只要用户数据不被破坏就行了——就选择了时刻走在前沿的 Tumbleweed

虽然这里说的是光盘镜像(直接下载的 ISO 文件)放在 U 盘上,但实际上放在电脑硬盘上也是一样。如果想放在电脑硬盘上,可以同时参考水景一页之前写的那篇文章。这里的重点问题就 2 个:一是制作可以引导启动电脑的 Grub 启动程序,可以放在 U 盘,也可以放在硬盘;二是启动后开始安装时给安装程序指定安装源(也就是这里的未经解压的光盘镜像)的位置。这两个问题搞定就可以顺利安装,不管是从 U 盘,还是从硬盘,又或者是两者混合。

写在前面的废话

本来之前安装的 openSUSE 13.1 还在的,就参考官方文档介绍的在线升级新版本的方法直接给升级到了 Tumbleweed。开始的几天用着还挺好。虽然每次开机进入 Plasma 5 桌面之后都会遇到一次 HPLIP 有关的错误,

HPLIP error message: "No system tray detected on this system. Unable to start, exiting "

按照论坛里一些讨论的方法,依次进入 Application Menu (Start Menu) – SystemHP Device ManagerConfigurationsPreferencesSystem Tray IconvisibilityHide when Inactive 设置也没用。好在并不影响什么。

然后一次 openSUSE 的例行更新(好像是 openSUSE Tumbleweed snapshot 20160108)之后就无法进入桌面了。快要进入桌面的时候提示 Plasma shell 直接挂掉,无法启动。Ctrl + Alt + F1 进入命令行终端(tty)也无法通过 startkde 指令启动桌面,虽然可以使用 startx 启动另一个桌面系统(好像是 xfce 吧)。命令行提示的错误好像是,

$display is not set

捣鼓了好久,无果,干脆重装吧。

虽然之前已经摸索清楚了在 Windows 下从硬盘引导并安装 openSUSE 的方法,但是这次还是想试试用 U 盘安装。希望达到的目的就是,

  • 保持 U 盘本身的 NTFS 格式不变以便放置大于 4GB 的 openSUSE DVD 光盘镜像;
  • 如果不破坏 U 盘上的数据就更好了,不需要再将几十 GB 数据复制回去(当然还是要先复制出来以免数据损坏的);
  • 以后可以再修改 U 盘上 GRUB 的 menu.lst 以增加其它引导项,比如在 openSUSE 无法启动的时候用于引导其启动、也许还可以做个 openSUSE 的 Live USB Stick 等。

准备启动安装的 U 盘

参考 openSUSE 官网上制作启动 U 盘的方法 ,使用 GRUB4DOS 将我的 64GB NTFS 格式的 U 盘做成了启动介质。这里介绍的步骤挺详细的,摘要如下,

  • 将下载的 openSUSE DVD 安装镜像 ISO 文件复制到 U 盘 “boot” 目录下。
  • 将此光盘镜像中的 “boot” 里的 “initrd” 和 “linux” 两个文件解压/复制到 U 盘的 “boot” 文件夹下。这两个文件位于安装光盘镜像的 boot\i386\loader 或者 boot\x86_64\loader 目录下。一般的解压缩软件,比如 7-zip,都可以读取 ISO 光盘内的内容,而不需要完全解压整个光盘镜像。
  • 使用 RMPrepUSB 将 GRUB4DOS 安装到 U 盘的 MBR (主引导记录)中:
    1. 下载并安装 RMPrepUSB
    2. 运行 RMPrepUSB;
    3. 选择目标 U 盘;
    4. 单击 “Install GRUB4DOS”;
    5. 确认将 GRUB 安装到 MBR;
    6. 确认将 GRUB 安装到选定的 U 盘;
    7. 确认将 GRLDR 复制到选定的 U 盘。
  • 将 “menu.lst” 文件复制到 U 盘的根目录。 “menu.lst” 的内容可以参考下面的代码(注意将其中的 openSUSE.iso 改成实际的 ISO 文件名(第 2 行和第 5 行);当然也可以将 ISO 文件名改成这个):
    timeout 10
    
    title openSUSE.iso 
    uuid () > nul 
    set UUID=%?% 
    set ISO=openSUSE.iso 
    kernel /boot/linux isofrom=/dev/disk/by-uuid/%UUID%:/boot/%ISO% isofrom_device=/dev/disk/by-uuid/%UUID% isofrom_system=/boot/%ISO% loader=syslinux splash=silent quiet 
    initrd /boot/initrd
  • 以此 U 盘引导启动计算机执行安装。

注意:

如果计算机配置为 UEFI 引导方式,则此启动 U 盘无法工作。一般 2011 年以后的计算机都提供了 UEFI 启动方式。可以在 BIOS 中启用 Legacy 引导方式,也就是说,禁用 UEFI/secure 启动选项!

这个方法理论上是不会破坏 U 盘里的原有数据的,但是保险起见还是先备份一下吧。

安装

开始安装

U 盘启动后在 GRUB 菜单中选择上面的 openSUSE.iso 启动后会直接进入到安装过程,但是因为刚开始电脑会以为是从光盘启动安装的,所以到复制安装资源这一步的时候会因为找不到安装介质而提示指定安装源的位置

此时可以选择后退(Back)(可能是要后退 3 次)到主菜单(Main Menu)然后选择 Start Installation,并选择安装介质的位置(hard disk),然后选择 U 盘所在位置(USB Disk)(当然也可以是硬盘的某个分区,这里会显示一个列表(/dev/sda1、/dev/sdb1 之类的)。因为是从 U 盘里的光盘镜像安装,就需要指定 ISO 所在位置,选择 /dev/sdb1 那个条目之后输入 ISO 路径及文件名即可,比如按照本文设定的,/boot/openSUSE.iso。然后就可以进入正常的安装过程了。

从 U 盘启动后,剩下的过程就跟直接在 Windows 下通过硬盘上的安装介质安装 openSUSE 的方法相似了,可以参考之前写的博客。

分区

我给分了四个区,如下表,

分区 容量 文件系统 挂载点 注释
/dev/sda6 1 GB ext2 /boot 都说 100MB 就够了;我闲的;因为主分区是原来的 Windows,所以从扩展分区的 sda6 开始。
/dev/sda7 8 GB swap swap
/dev/sda8 15 GB ext4

Btrfs

/ (root) 根分区;虽然说 Btrfs 感觉挺好,也支持快照,但是谁让 ext4 可以在系统里直接转换为 Btrfs 呢(误,并不能在系统运行时直接转换,转换 / 分区的话需要卸载 / 分区才行)。

因为最近的一次遭遇,觉得还是选择 Btrfs 会好些,毕竟 Tumbleweed 这个滚动更新的发行版并不如长期支持版那么可靠,说不定哪天更新之后就出问题了。这就是享受最新技术的代价吧。(2016.06.11)

/dev/sda9 剩下所有 ext4 /home 剩下的所有空间都给 home 了,放置用户文件的

个性化设置

因为太久没用 openSUSE 了,很多设置都搞不清在哪里了。我就把自己这次设置的操作都做个了记录,以备后查。这些记录比较杂,需要单独开一篇博客记录并分享了。请看这里

新的 Plasma 5 桌面真的是挺好看的,不信看看图片。进行了一番初始个性化设置之后感觉跟用 Windows 差别没多大了,只是用了十多年的 Windows 有些操作习惯真的很难改掉。看看现在 Windows 10 一堆一堆的操作限制和各种小 bug,感觉真是放弃的时候了。

更新说明

2016.06.11

根据使用经验稍作修改,主要是对于根分区的推荐文件系统改为 Btrfs 了。另外因为实际上这个方法对于将光盘镜像放在电脑的硬盘上也是一样可行的(比如电脑上本来有 Windows 系统)。此文的目的是探索在电脑本身没有系统的情况下的安装 openSUSE 的方法。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/install-opensuse-tumbleweed-from-iso-in-usb-stick/>。转载请保留此信息及相应链接。

9 条关于 “通过 U 盘上的 ISO 光盘镜像安装 openSUSE Tumbleweed” 的评论

  1. 只会用基于debian的ubuntu,简单易用,出了问题也好找答案,因为用户群比较大。

      • 习惯debian系,opensuse和arch比哪个比较好用(折腾)且支持足够好?

        • 这个我没有发言权啊。到目前位置,真正用过的 Linux 就只有 CentOS 和 openSUSE 了。完完全全的新手入门级别。

          P.S. 话说你还在网络上呢,好久没你的消息了。你的域名也是一直提示无法解析,还以为你把这些都抛弃了。

  2. 引用通告: openSUSE Tumbleweed 初始配置记录 | 水景一页

  3. 引用通告: CentOS 中 YUM 安装桌面环境 | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)