Rumah >php教程 >php手册 >制作多版本 Fedora 系统安装 U 盘

制作多版本 Fedora 系统安装 U 盘

WBOY
WBOYasal
2016-06-16 09:16:261230semak imbas

制作多版本 Fedora 系统安装 U 盘


现在应该很少人使用光盘来安装系统了,几乎所有 BIOS 都支持USB启动。所以用 U盘 (或者移动硬盘/SD卡等移动存储器)进行系统安装应该是很正常的了。而遇到需要使用安装盘的机会其实很少(系统崩溃,需要LiveCD;彻底重装系统等等。我的 Fedora 装了3年,直到更换电脑了才需要用安装盘装系统)。以前也不太注意,做好了能用就拉倒,也没有记录过程和问题。这次手上有一个多余的 16G U盘,元旦假期想做一个可以安装多版本 Fedora 的安装U盘,且可以利用剩余空间存储其他数据。

参考资料 :How to create and use Live USB


使用 dd 命令

最粗暴的办法就是 dd 了,无需安装任何软件,系统自带命令,一行了事。


<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>sudo dd if=<安装盘.iso 的路径> of=</dev/sdX></li></ol>

你还可以在后面加上 bs=?MB 等等参数来提高效率。在这个命令之后,不要忘了”sync” 哦 :-)

但他的不足非常明显:

  • 浪费空间:整个U盘都被占用了,仅可以安装一个系统
  • 只读:由于 iso 是光盘文件系统(ISO 9660 CD-ROM filesystem),所以将其 dd 进 U 盘后,系统就认为U 盘只读了。
  • 软件报错:在插入 U 盘的时候,如果打开 Gparted , 它就要抱怨了块大小不对了。
  • 隐藏进度:命令一启动,你就准备好干等几分钟吧,在结束前不会有任何输出(可以通过killall/kill 解决,见下行参考资料)
SideNote: dd命令是可以通过信号来查看进度的, 请参考check the status of ‘dd’ in progress

使用 GUI 软件

以下两个软件不怎么靠谱,性急的请跳过 :-)

Fedora 仓库中的 liveusb-creator

安装软件

<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>sudo yum install liveusb-creator</li></ol>

使用体验

使用 liveusb-creator GUI 软件制作,似乎更简单。
但我没有成功过,问题在于这个软件没有被很好地测试,做完后(可能)未修改MBR,导致无法实现 LiveCD 的功能(无法从U 盘启动系统)
优点:

  • GUI简单易用
  • 可自动下载所需 Fedora 映像
  • 进度显示
  • 仅占用一个分区,不浪费空间

缺点:

  • 烧写出的启动盘无法启动系统(至少我没有成功过)
  • 只能实现 LiveCD 的烧写。(一个只能烧写 LiveCD 的软件,做出的 U 盘无法实现 LiveCD 的功能,你TM在逗我 :-p)
  • 连 Fedora 的官方 Wiki 都不推荐使用,还不如 dd 靠谱

UNetbootin

安装软件

去UNetbootin的主页下载对应的版本安装(有RPM包)

使用体验

看上去似乎和 liveusb-creator 一样,但是在我的 F23 下无法使用:
a. 装完成,通过 GUI 图标启动,提示:需 root 权限,请通过命令行启动。(可以预览界面哦)
b. 使用提示的命令在终端下用 sudo/su 启动,显示一堆错误,卡死 :-(

优点:

  • 同 liveusb-creator
  • 支持多个发行版
  • 跨平台(Win, Linux, Mac OS X)

缺点:

  • (在 F23 下没有启动成功,不评论), Fedora Wiki 不推荐使用,不如 dd 靠谱




使用 livecd-iso-to-disk 命令行工具

重点来了,最后发现 livecd-tools 是最好用的工具。
虽然是命令行,但操作简单(甚至比dd还简单),关键是“it works”。

优点:

  • 简单易用,几乎和 dd 一样简单
  • 不仅可以处理 LiveCD, 也可以处理 Server 版本的安装 DVD
  • 有部分进度显示
  • 仅需占用单个分区,不浪费空间,且可读可写。
  • 支持多 LiveCD 安装到同一分区

缺点:

  • 需要一点手动处理:对于启动MENU的配置文件

安装软件


<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>sudo dnf install livecd-tools </li></ol>


使用方法

安装首个 LiveCD

<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>sudo livecd-iso-to-disk --reset-mbr --home-size-mb 1024 '/home/tekkamanninja/development/temp/Fedora-Live-Workstation-x86_64-23-10.iso' /dev/sdb1</li></ol>

其中

  • –reset-mbr告诉 livecd-iso-to-disk 需要更新 U 盘(或存储器)的 MBR,这样系统才可以从 U 盘启动。作为被安装的首个 LiveCD 映像,这个是必须的。
  • –home-size-mb 1024(可选)告诉 livecd-iso-to-disk 创建一个1024MB 大小的 img 文件作为用户的home 分区,可以保留用户数据。注意:默认–encrypted-home ,建议在后面加上–unencrypted-home ,因为在实践过程中发现如果加密了home.img, 有可能导致 系统卡在启动阶段。原因是,在系统提示输入密码的时候,其他并行的启动信息输出阻碍了密码的输入,导致无法输入密码,系统无法挂载home.img, 卡死。这种情况出现在了F23 security lab LiveCD 中,在WorkStation LiveCD 中没有问题。
  • 如果你想自定义分区的标签,可以使用 –label ,例如,–label “Fedora-LiveCD”
  • *.iso 下载的 Fedora LiveCD 文件,不用多说了
  • /dev/sdb1 是安装的目标 U 盘分区,注意: 是分区,并非整个U 盘。 你可提前分好区,但记得目标分区必须标示为”boot”,否则工具会提示并退出。

命令执行完毕后,你的 U 盘就是可以启动并安装 Fedora 的启动盘了。

安装多个 LiveCD 到同一分区(可选)

在完成了第一个 LiveCD 的安装之后,我发现,其实 livecd-iso-to-disk 是支持多映像安装的。
第二个及之后 LiveCD 的安装 是的命令大致如下

<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>sudo livecd-iso-to-disk --multi  --livedir "security" --home-size-mb 1024 --unencrypted-home '/home/tekkamanninja/Downloads/Fedora-Live-Security-x86_64-23-10.iso'  /dev/sdb1</li><li>sudo livecd-iso-to-disk --multi  --livedir "server" '/home/tekkamanninja/Downloads/Fedora-Server-DVD-x86_64-23.iso' /dev/sdb1</li></ol>
与首个系统的主要区别在于: 添加了–multi –livedir
这个选项是告诉 工具:此次的 LiveCD 映像 安装于 /dev/sdb1 根目录下的 目录,这样就不会与原先安装的 LiveCD 冲突了。
只要你的 U 盘够大,要安装几个 LiveCD 映像 都可以。但是注意,在执行完此命令之后, 必须手动修改启动配置文件,否则你无法在启动时看到后面安装的 LiveCD 启动选项。


以本文为例,先安装了 F23 Workstation LiveCD, 之后安装了security Live CD,所有需要将 /security/syslinux/syslinux.cfg 中的


<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>menu separator</li><li>label linux0</li><li>menu label ^Start Fedora Live</li><li>kernel /security/syslinux/vmlinuz0 </li><li>append initrd=/security/syslinux/initrd0.img root=live:UUID=8fcd33eb-3dc2-4c04-8347-1b8099aa0d1c rootfstype=ext4 ro rd.live.image live_dir=security quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0</li></ol>

拷贝到 /syslinux/extlinux.conf 中。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn