Total Pageviews

Wednesday, 2 January 2013

自定义 PartedMagic 模块

在各种 Linux Live CD 中我用得最多的就是 Parted Magic, 里面的 GParted 真是贼好用。这个寒假又是帮了不少人修电脑,烦不胜烦,一开机就见到那个该死的 FAT32 文件系统需要检查,什么年代了,还 FAT32,好心各位装电脑的对分区负责任点好不好,硬盘不要再用 FAT32,也不要贪方便把硬盘平分 4 个区,想想 C 盘要几十 G 托啊?那只会让那些菜鸟把什么东西都放在 C 盘,可苦了我这些免费的修电脑工,重装要转移数据真系郁闷到扑街。
Parted Magic 真是我的救命法宝,支持多种文件系统,无损分区,稳定可靠,远比那些昂贵的商业软件好。同时支持自定义模块,很方便地添加自己需要的功能,经过一晚的研究,实现中文显示和输入,分享一下。
提示: Parted Magic 5.3 版本后已经有了中文支持,部分汉化,可从引导菜单中选择。字体和输入法分别为文泉驿微米黑和 Scim。

Parted Magic 的文件目录结构

目前最新版的 Parted Magic 3.5有了 很大的改进,主要有 2 个
  • 主模块不用 7z 改用 squashfs 文件系统,所以体积大 25M,不过启动速度快了不少。
  • 使用了经高度测试过的 GParted 的 svn 版,支持即将来临的 Ext4 文件系统。
我下的是 grub4dos 版,光盘里面有几个文件,除去引导器的文件,其实 pmagic 文件夹就是全部内容了
  • pmagic 文件夹里面有 bzImage 和 initrd ,这 2 个内核和虚拟磁盘。
  • 还有一个 pmodules 文件夹,里面有一个 pmagic.sqfs,还有一个空的 script 文件夹
总共才 3 个文件,极其精简。

自定义模块

看过文档后 Parted Magic 可分 3 种,一个一个来说

Slackware 的 tgz 软件包

新版中有一个 installpkg 命令,可以安装 Slackware 的 tgz 文件,我下了个 Slackware 的 文泉驿正黑,使用
installpkg wqy-zenhei-font-ttf-0.6.26_0-noarch-1.tgz
即可安装,不用重启 X 就可以在 Firefox 里显示中文了,挂载 NTFS 文件系统文件名和文本也能正常显示中文,很简单。
不过每次启动都要执行一次是有点麻烦,可以把这个 tgz 文件放到 pmodules 文件夹里面,那么在启动的时候就会自动安装了。但不是所有 Slackware 包都能用,看运气或者你慢慢调试。Slackware 那个文泉驿正黑有点旧.

7z 压缩包

这种方式很早就使用了,也非常简单,也把 7z 文件放到 pmodules 文件夹里面,在启动是就自动把压缩包里面的内容解压到 / 里面去。官方文档有个 说明例子。我测试过了,zip、tar、gz、bz2、rar 的都不会自动解压。
中文输入法我打算用 fcitx,不过找不到较新可用的 Slackware 二进制包(我还在拖 Slackware),所以我还是想之前一样用 Firefox 扩展——火输,我配置了一个 Firefox 配置文件夹(带一些使用扩展),我想进入桌面后这个文件夹就躺在 root 的主目录下(就是 /root 啦),而不是进入桌面后手动解压。所以弄一个 7z 包
  1. Firefox 的配置文件夹名为 Firefox,里面就是一大堆文件
  2. 新建一个 root 空文件夹,把 Firefox 放进去
  3. 把这个 root 文件夹打包成 7z 文件
  4. 也就是打开这个 7z 看到的是 root 文件夹不是 Firefox
因为是自动解压到 / 里,所以在压缩包里按组织好目录就行了,也就是把 7z 压缩包也当成一个 / 。

启动脚本

那个 script 自然是启动时执行一些脚本啦,比如我想在桌面添加 Firefox 的快捷方式,那么建立一个 firefox.sh,添加内容为
#!/bin/bash
cp /usr/share/applications/mozilla-firefox.desktop /root/Desktop/
这样后启动即可在桌面多了个 Firefox 图标,还有,在这里的脚本不要用 ~ 来代表 /root,我试过,失败的,还是老老实实用 /root 吧。