无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 8545|回复: 24
打印 上一主题 下一主题

如何创建中文版的geexbox 2.0光盘镜像

  [复制链接]
跳转到指定楼层
1#
发表于 2011-11-23 12:57:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
geexbox 2.0的官方ISO是英文的,虽然可以改为中文,但每一次开机都要修改,觉得比较烦,而且不想安装到U盘,所以想创建一个中文版的光盘镜像,请问怎么做?谢谢各位!
2#
 楼主| 发表于 2011-11-23 16:57:53 | 只看该作者
我的想法是将光盘镜像中的rootfs挂载,然后修改其中的内容,然后再重新封装,但我尝试挂载失败。请问应该怎样挂载?
如果大家有什么其它方法也请指教!谢谢!
如果成功创建geexbox 2.0的中文光盘镜像,我将共享出来,大家就不用重复劳动了,而且可以用grub4dos引导光盘镜像启动,省去安装到U盘了!
回复

使用道具 举报

3#
发表于 2011-11-23 18:30:15 | 只看该作者
已经有方法了,无需更改rootfs,对linux不熟的人无法自行封装的,不如建立存档文件casper-rw
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

4#
 楼主| 发表于 2011-11-23 23:36:16 | 只看该作者
如果用光盘镜像文件,就连存档文件也不用了!呵呵!
回复

使用道具 举报

5#
 楼主| 发表于 2011-11-24 13:32:37 | 只看该作者

回复 #3 rockrock99 的帖子

我试了一下用存档文件,但是不成功!注:我用的都是虚拟机
提示:
could not open framebuffer:no such file or driectory
但我用光盘启动就可以进去

我的grub4dos设置:
title GeeXboX v2.0
kernel /BOOT/GEEXBOX/VMLINUZ rootfs=/boot/geexbox/rootfs persistent=/boot/geexbox/casper-rw quiet splash
initrd /BOOT/GEEXBOX/INITRD
回复

使用道具 举报

6#
发表于 2011-11-24 15:54:28 | 只看该作者
要在实机上测试,对存储设备有要求,一定要放在可见的主分区,具体要求看旧帖
回复

使用道具 举报

7#
 楼主| 发表于 2011-11-24 20:09:27 | 只看该作者
是不是一定要fat32分区?我在虚拟机也可以启动,但ntfs分区就启动不了??
回复

使用道具 举报

8#
发表于 2011-11-24 21:14:37 | 只看该作者

回复 #7 xingwen 的帖子

ntfs分区已经证实了不行
回复

使用道具 举报

9#
 楼主| 发表于 2011-11-25 12:45:32 | 只看该作者
能不能想个办法可以在NTFS分区启动,那就不用转换成FAT32格式了!
回复

使用道具 举报

10#
发表于 2011-11-25 13:03:09 | 只看该作者

回复 #9 xingwen 的帖子

只能等官方修正这个,已经有人在论坛上反应过了
回复

使用道具 举报

11#
发表于 2011-11-26 09:43:31 | 只看该作者
自己在虚拟机下封装下,省的又要分个区,和做livecd一样的,百度下就有了,因为你只是改语言和编码,所以不涉及到裁剪,不会很麻烦的
回复

使用道具 举报

12#
发表于 2011-11-26 11:36:11 | 只看该作者
原帖由 2010ksharpdabu 于 2011-11-26 09:43 发表
自己在虚拟机下封装下,省的又要分个区,和做livecd一样的,百度下就有了,因为你只是改语言和编码,所以不涉及到裁剪,不会很麻烦的


能说一下你的方法吗?
回复

使用道具 举报

13#
 楼主| 发表于 2011-11-26 13:08:21 | 只看该作者
to 2010ksharpdabu
能说一下你的方法吗?谢谢!
回复

使用道具 举报

14#
 楼主| 发表于 2011-11-28 19:53:56 | 只看该作者
一定要将分区转为fat32,还是做一个中文iso好些!
回复

使用道具 举报

15#
发表于 2011-11-29 16:07:00 | 只看该作者

回复 #14 xingwen 的帖子

想用G4D启动的话,ISO还是要解开放在可见分区才能启动
回复

使用道具 举报

16#
发表于 2011-11-30 16:12:51 | 只看该作者
原帖由 rockrock99 于 2011-11-29 16:07 发表
想用G4D启动的话,ISO还是要解开放在可见分区才能启动


还是用iso整体启动方便。看起来舒服,不想根目录一大堆文件。不过要FAT32,ntfs格式的硬盘或优盘的话还是不行。

  1. #!/bin/sh

  2. dbg_echo () {
  3.   [ "$QUIET" = yes ] || echo $*
  4.   return
  5. }

  6. # install busybox symlinks
  7. /bin/busybox --install -s

  8. export PATH=/sbin:/bin

  9. # mount required filesystems
  10. busybox mount -t proc none /proc
  11. busybox mount -t sysfs none /sys

  12. # prepare /dev
  13. mount -t devtmpfs devtmpfs /dev
  14. echo '/bin/mdev' > /proc/sys/kernel/hotplug
  15. mdev -s

  16. # splash
  17. /bin/ply-image /plymouth/splash.png

  18. # parse kernel cmdline
  19. for arg in $(cat /proc/cmdline); do
  20.   case $arg in
  21.     root=*)
  22.       ROOT="${arg#root=}"
  23.       ;;
  24.     data=*)
  25.       DATA="${arg#data=}"
  26.       ;;
  27.     init=*)
  28.       INIT="${arg#init=}"
  29.       ;;
  30.     quiet)
  31.       QUIET=yes
  32.       ;;
  33.     persistent)
  34.       PERSISTENT=yes
  35.       ;;
  36.     initshell)
  37.       echo "Dropping to shell as requested"
  38.       exec sh
  39.       ;;
  40.   esac
  41. done

  42. # try to mount the rootfs specified in cmdline...
  43. if [ -n "$ROOT" ]; then
  44.   dbg_echo -n "Trying root=$ROOT as requested..."
  45.   if mount -o ro $ROOT /mnt >/dev/null 2>&1; then
  46.     if mount -t squashfs /mnt/rootfs /squashfs >/dev/null 2>&1; then
  47.       dbg_echo "found."
  48.     else
  49.       dbg_echo "failed, cannot mount squashfs."
  50.       umount /mnt
  51.       unset ROOT
  52.     fi
  53.   else
  54.     dbg_echo "failed, cannot mount device."
  55.     unset ROOT
  56.   fi
  57. fi

  58. # ...otherwise just scan the block devices for rootfs
  59. if [ -z "$ROOT" ]; then
  60.   dbg_echo "Scanning for root device:"
  61.   cd /sys/block
  62.   for i in 0 1 2 3 4 5 6 7 8 9; do
  63.     for dev in *; do
  64.       echo $dev | grep -q loop && continue
  65.       echo $dev | grep -q ram && continue
  66.       dbg_echo -n "[$i] Trying $dev..."
  67.       if ! mount -o ro /dev/$dev /mnt >/dev/null 2>&1; then
  68.         # check for removable devices not built with isohybrid support
  69.         if [ $(cat /sys/block/$dev/removable) = 1 ]; then
  70.           dbg_echo -n "[$i] Trying ${dev}1..."
  71.           if ! mount -o rw /dev/${dev}1 /mnt >/dev/null 2>&1; then
  72.             dbg_echo "failed, cannot mount device."
  73.             continue
  74.           fi
  75.         else
  76.           dbg_echo "failed, cannot mount device."
  77.           continue
  78.         fi
  79.       fi
  80.       if mount -t squashfs /mnt/rootfs /squashfs >/dev/null 2>&1; then
  81.         dbg_echo "found."
  82.         FOUND_ROOTFS=yes
  83.         break
  84.       else
  85.         dbg_echo "failed, cannot mount squashfs."
  86.         umount /mnt
  87.       fi
  88.     done
  89.     [ -n "$FOUND_ROOTFS" ] && break
  90.     sleep 1
  91.   done
  92.   cd /
  93. fi

  94. [ -z "$INIT" ] && INIT=/bin/systemd

  95. if [ ! -x /squashfs/$INIT ]; then
  96.     echo "Cannot find a valid root filesystem, dropping to shell"
  97.     exec sh
  98. fi

  99. # setup aufs
  100. if [ "$PERSISTENT" = yes ]; then
  101.    DATA=/mnt/casper-rw
  102.    PERSISTENT_OPT="-o loop -t ext2"
  103.    [ ! -f "$DATA" ] && unset DATA && unset PERSISTENT_OPT
  104. fi
  105. if [ -n "$DATA" ]; then
  106.   if ! mount $PERSISTENT_OPT -o rw,noatime $DATA /rw; then
  107.     echo "Cannot mount data partition, using tmpfs instead"
  108.     unset DATA
  109.   fi
  110. fi
  111. [ -z "$DATA" ] && mount -t tmpfs none /rw
  112. if ! mount -t aufs -o br=/rw:/squashfs none /newroot; then
  113.   echo "Cannot mount aufs, dropping to shell"
  114.   exec sh
  115. fi

  116. # move backed filesystems inside newroot otherwise aufs won't work properly
  117. mkdir -p /newroot/run
  118. mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs /newroot/run
  119. mkdir -p /newroot/.data /newroot/.squashfs /newroot/.root
  120. mount --move /rw /newroot/.data
  121. mount --move /squashfs /newroot/.squashfs
  122. mount --move /mnt /newroot/.root
  123. mkdir -p /newroot/run/initramfs/bin /newroot/run/initramfs/sbin
  124. cp -P /bin/busybox /bin/sh /newroot/run/initramfs/bin/
  125. cp -P /bin/shutdown /newroot/run/initramfs/

  126. INIT_ARGS=`cat /proc/cmdline`

  127. # Reset kernel hotplugging
  128. echo "" > /proc/sys/kernel/hotplug
  129. umount /sys
  130. umount /dev
  131. umount /proc

  132. # Change to the new root partition and execute /sbin/init
  133. if ! exec /bin/busybox switch_root /newroot $INIT $INIT_ARGS; then
  134.   echo "Failed, dropping to shell"
  135.   /bin/busybox mount -t proc none /proc
  136.   /bin/busybox mount -t sysfs none /sys
  137.   exec sh
  138. fi
复制代码

[ 本帖最后由 我是神仙 于 2011-12-5 23:25 编辑 ]
回复

使用道具 举报

17#
发表于 2011-12-7 21:58:09 | 只看该作者
原帖由 2010ksharpdabu 于 2011-11-26 09:43 发表
自己在虚拟机下封装下,省的又要分个区,和做livecd一样的,百度下就有了,因为你只是改语言和编码,所以不涉及到裁剪,不会很麻烦的


确实,在虚拟机下封装一下还是很方便的。

最先是加了一个 language selecter ,就是在启动Geexbox时自动弹出一个语言菜单,方便选择不同的语言
如图:


这个每次都要选一次,也不是很方便。

后来去官方论坛问了下,还是把文件直接写进入rootfs里面
这样就不会每次都问了,一启动就是中文确实要好一些

只要在配置文件中加入这几行就是默认中文了:

    <locale>
        <charset>GBK</charset>
        <language>Chinese (Simple)</language>
    </locale>


    <lookandfeel>
        <font>Arial</font>
    </lookandfeel>

http://115.com/file/aq1x7q7l#
geexbox-2.0.1-i386-CN.iso

geexbox-2.0.1-i386-CN.iso

[ 本帖最后由 我是神仙 于 2011-12-17 01:17 编辑 ]

guisettings.xml.7z

4.29 KB, 下载次数: 56, 下载积分: 无忧币 -2

GeexBox默认中文的配置文件

回复

使用道具 举报

18#
 楼主| 发表于 2011-12-8 12:43:22 | 只看该作者
我对Linux不是很熟悉,请问怎样挂载rootfs,谢谢!
回复

使用道具 举报

19#
发表于 2011-12-13 00:18:03 | 只看该作者
原帖由 xingwen 于 2011-11-25 12:45 发表
能不能想个办法可以在NTFS分区启动,那就不用转换成FAT32格式了!


试了一下新版2.01已经支持ntfs启动了

既然内核已经支持ntfs,不管是fat32还是ntfs,iso启动也应该不是大问题
只不过是要像CDlinux那样在启动脚本中多花功夫搜索出iso文件并预先加载mount,总之只要找得到rootfs这个文件就能启动。

http://rain.orgfree.com/2011/11/23/geexbox2-0%E7%A1%AC%E7%9B%98%E5%90%AF%E5%8A%A8%E6%94%AF%E6%8C%81ntfs%E5%92%8Ciso/
这里有个现成的例子。

                geexbox2.0硬盘启动
—- 支持NTFS和ISO
                                                        发表于 2011 年 11 月 23 日               
                                                【目的】
1.使geexbox 2.0支持NTFS分区格式
2.使geexbox 2.0能够直接从ISO格式的文件启动
3.方便使用持久化
回复

使用道具 举报

20#
发表于 2011-12-13 16:38:14 | 只看该作者
我这样挂载rootfs,总是只读的方式,不能修改
如何才能以读写的方式挂载
系统是ununtu 11.0
mount rootfs -t squashfs -o loop ./geex

mount rootfs -t squashfs -o rw ./geex
回复

使用道具 举报

21#
发表于 2011-12-13 17:51:58 | 只看该作者
原帖由 surfting 于 2011-12-13 16:38 发表
我这样挂载rootfs,总是只读的方式,不能修改
如何才能以读写的方式挂载
系统是ununtu 11.0
mount rootfs -t squashfs -o loop ./geex

mount rootfs -t squashfs -o rw ./geex


rootfs这个squashfs 肯定是只读的了

要可写的话一般是加个casper-rw文件,搜索一下那个aufs系统就知道了。aufs就是把一个只读系统加上一个可写的系统来组成一个混合的文件系统
现在的livecd好多这样的。geexbox也是这样的。
回复

使用道具 举报

22#
发表于 2011-12-13 22:43:12 | 只看该作者
原帖由 我是神仙 于 2011-12-13 17:51 发表


rootfs这个squashfs 肯定是只读的了

要可写的话一般是加个casper-rw文件,搜索一下那个aufs系统就知道了。aufs就是把一个只读系统加上一个可写的系统来组成一个混合的文件系统
现在的livecd好多这样的。 ...

能说一下如何加个casper-rw文件吗?
我这样写只能修改casper-rw
mount -t aufs -o br:./casper:./geex none ./rwdir
回复

使用道具 举报

23#
发表于 2011-12-13 23:20:44 | 只看该作者
原帖由 surfting 于 2011-12-13 22:43 发表

能说一下如何加个casper-rw文件吗?
我这样写只能修改casper-rw
mount -t aufs -o br:./casper:./geex none ./rwdir


具体说起来也不好说 ,你直接看GeexBox里面的代码吧:

  # setup aufs
  if [ -n "$PERSISTENT" ]; then
   DATA=/mnt/$PERSISTENT
   PERSISTENT_OPT="-o loop -t ext2"
   [ ! -f "$DATA" ] && unset DATA && unset PERSISTENT_OPT
  fi
  if [ -n "$DATA" ]; then
    if ! mount $PERSISTENT_OPT -o rw,noatime $DATA /rw; then
      echo "Cannot mount data partition, using tmpfs instead"
      unset DATA
    fi
  fi
  [ -z "$DATA" ] && mount -t tmpfs none /rw
  if ! mount -t aufs -o br=/rw:/squashfs none /newroot; then
    echo "Cannot mount aufs, dropping to shell"
    exec sh
  fi

参照一下就知道了
回复

使用道具 举报

24#
发表于 2011-12-13 23:22:48 | 只看该作者
大概就是先mount一个只读的系统在目录 /squashfs,再mount一个可写的文件系统,如在/rw,然后再用aufs临时组合成一个可写的文件系统 /newroot
回复

使用道具 举报

25#
发表于 2011-12-13 23:29:49 | 只看该作者
结果就是,
把前面附件中的那个guisettings.xml.7z 加到initrd中去,再把rootfs也一起打包到initrd中去。这样就是默认中文的了,
并且可以直接以ISO启动,放在UD区启动或PXE启动也无所谓。

initrd用7zip可以打开,不过最好是登录到linux中去操作,比如登录到GeexBox的命令行中去操作就可以。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-10 19:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表