发新话题
打印

GRUB4DOS项目空间@gna.org

GRUB4DOS项目空间@gna.org

在gna.org上的GRUB4DOS页面:

https://gna.org/projects/grub4dos/

用户使用的简单介绍:

1、用web界面浏览代码

直接使用以下的网址:

http://svn.gna.org/viewcvs/grub4dos/trunk/

下载空间:

http://download.gna.org/grub4dos/

以后GRUB4DOS编译版本可能会上传到这里。

2、匿名下载最新代码

svn co svn://svn.gna.org/svn/grub4dos/trunk grub4dos

svn co http://svn.gna.org/svn/grub4dos/trunk grub4dos

下载旧版本:

svn co svn://svn.gna.org/svn/grub4dos/tags/grub-0.97 grub4dos
这是原始版本grub-0.97

svn co svn://svn.gna.org/svn/grub4dos/tags/grub4dos-0.4.2 grub4dos
这是grub4dos 0.4.2正式版

3. 邮件列表

相应于svn有一个邮件列表,可以在以下网址订阅:

https://mail.gna.org/listinfo/grub4dos-commits/

填好你的邮箱地址,和任选一个密码后,便可按subscribe订阅

订阅了该邮件列表后,每当svn有新的版本commit时,都会以邮件的形式通知你。

开发者使用简单介绍:

gna.org上关于项目管理的文档在这里:

https://gna.org/cookbook/?group=grub4dos

1、开发者访问代码

1) 运行ssh-keygen -t rsa,生成私匙和公匙
该命令生成 ~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件,前者私匙,后者是公匙
该命令还提示你输入密码pass phrase,在以下的svn中,在提示输入pass phrase时使用
假如你觉得每次输入密码麻烦,可以不设密码,也可以使用ssh-agent:

ssh-agent $SHELL
ssh-add ~/.ssh/id_rsa

ssh-agent命令调用一个新的shell,在其中运行ssh的私匙由ssh agent控制。
ssh-add把私匙加入ssh agent,命令中要求输入pass phrase,正确输入后,以后的svn就不再需要输入了

2) 登陆到gna.org,在左边工具栏点"My Account Conf",然后点"Edit the 1 SSH Public Key
registered", 然后用编辑器打开~/.ssh/id_rsa.pub,把里面的内容(是很长的一行)拷贝到
Key #1里,然后点"Update"。注意:在修改了公匙后,需要一定的时间才能生效,在最坏的情况下,
等待时间是3个小时。

3) 用以下的命令获得代码:

svn checkout svn+ssh://<membername>@svn.gna.org/svn/grub4dos/trunk grub4dos

<membername>是你在gna.org的用户名

2. 上传文件到下载空间

rsync --delete  -avr --rsh="ssh" . <membername>@download.gna.org:/upload/grub4dos

或者

scp filename <membername>@download.gna.org:/upload/grub4dos/

ssh的配置和1中是一样的

3、svn使用简单介绍

详细使用手册在这里:
英文版:http://svnbook.red-bean.com/en/1.2/
中文版:http://svnbook.subversion.org.cn/1.2/index.html

你也可使用

svn help commnd

来获得command命令的帮助信息

常用的命令简单介绍如下:

1) 导出/提交代码

导出代码用:

svn co svn+ssh://<membername>@svn.gna.org/svn/grub4dos/trunk grub4dos

该命令下载最新的GRUB4DOS代码到grub4dos目录下,grub4dos便是当前的工作目录。

修改代码后,用

svn commit

命令便可提交。

提交时需要为当前提交的代码写简单的介绍,有三种方法:

a)用--message 或 -m, 在命令行里直接指定,如:

svn commit -m "This is a new version"

b)用--file 或 -F, 介绍在外部文件中:

svn commit -F commit_text

c)如果不使用以上的参数,在提交前会调用编辑器,在里面可临时添加信息

2) 使本地文件和服务器上的同步

svn update

3) 察看工作目录的修改状态

svn status

该命令会显示当前的工作目录文件的状态。

? 该文件不在代码控制范围内
A 该文件是新加文件
M 该文件以修改

? 开始的文件是不在代码控制范围内的文件,它有可能是程序运行中生成的中间文件(如*.o等),
也可能是在本版本中新加的文件。对于第一种情况,不需要理会,因为它们在commit时不会被处理。
对于第二种情况,需要用svn add命令把它加入代码控制系统中。这时如果再运行svn status,会发现
该文件的状态从? 改为 A, 在下一次commit,该文件将会被添加到服务器上。

4) 察看修改纪录

svn log

该命令可以加一个参数--revision或-r,用来指定显示的版本:

svn log -r 5:8

显示版本5和版本8之间的修改纪录。

-r的参数除了使用数字外,还可以使用关键字:

HEAD: 系统最新的版本号
BASE: 目录/文件建立时的版本号
COMMITTED:目录/文件最新修改的版本号
PREV:目录/文件对上一次修改的版本号,即COMMITTED-1

也可以使用日期或时间作为版本号的参数,如

{2007-03-03} {15:30} {"2007-03-03 15:30"} {20070303T1530} 等等

例子:

svn log -r PREV:COMMITTED
显示最近一次修改的纪录

svn log -r "{2007-03-03}":"{2007-03-04}"

显示从 2007-03-03 到 2007-03-04 的修改纪录

5) 生成补丁

svn diff > patch.diff

生成当前工作目录代码自checkout以来所作的修改的补丁

svn diff -r 5 > patch.diff

生成当前工作目录代码相对于版本5的补丁,版本5其实就是grub-0.97

svn diff --old=svn://svn.gna.org/svn/grub4dos/tags/grub-0.97 --new=svn://svn.gna.org/svn/grub4dos/trunk > patch.diff

生成服务器上最新版本相对于grub-0.97的补丁

TOP

引用:
原帖由 windrv 于 2007-3-5 13:51 发表
How about this?:

GRUB4DOS is an enhanced build of GNU GRUB & GRUB 2, providing a versatile bootloader for operation under bios, network boot, *nix, Windows boot managers and dos, having supp ...
GNU GRUB 就包括了 GRUB2 了。问题是,到目前为止,我们并未支持 GRUB2,而我们已经做到的,就是可以保证 100% 与 GRUB legacy 兼容。所以,笼统说 GNU GRUB 也就够了,至于说以后引入什么功能,以及从什么软件引进功能,现在都不好肯定。即使以后专门为 GRUB2 开辟一个分支(就像 bean 正在做的那样),那也仍然是在 GNU GRUB 这个概念之下。另外,UNIX 并未支持,还是说 LINUX 较好。

TOP

So amended to:

GRUB4DOS is an enhanced build of GNU GRUB, providing a versatile bootloader for operation under bios, network boot, Linux, Windows NT/2K/XP/2003/Vista boot manager and dos, having support for ATAPI CDROM, hard disk and memory disk virtualization, Chinese Menu, etc.

Of course it is up to you and bean to decide!

I noticed that bean had already put up his version on gna.org.

TOP

引用:
原帖由 bean 于 2007-3-5 12:16 发表
大家看看这样行不行:

GRUB4DOS is an enhanced build of GNU GRUB, it has features like booting through Windows NT/2K/XP/2003/Vista boot manager, launching from linux console and DOS prompt, virtual harddisk/floppy management, ATAPI CDROM driver, Chinese support, and so on.
我用中文表达一下我的描述,看看如何:

--------------------
GRUB4DOS 是一个以 GNU GRUB 为基础的(万能)引导器。它可以在 DOS 和 LINUX(其实是经由KEXEC) 下运行,也可以通过其他引导器(例如Windows 的 bootloader,syslinux,以及 lilo)而运行,当然也能够作为 MBR 运行。

它内置了功能完善(强大)的 BIOS 级磁盘仿真(虚拟)。

内置了ATAPI CDROM 驱动,可以用来启动 CDROM。
--------------------

如果第三段写不下,可以省略。如果第二段也写不下,就也省略掉。至于说中文支持,应该省略掉。原因如下:1。中国人一般都了解我们的这一功能,无需指出。2。语言支持不是一个软件在介绍自己的时候应当提及的。3。中文圈外的人关心国际化,不关心中文支持。就像我们不关心俄语支持那样。

我来解释一下。我的描述突出了架桥作用,突出了兼容性(有人说 2007 年是虚拟化的一年,我的理解就是,大家迫切需要兼容。什么叫虚拟化?它实质就是兼容而已,是增强互操作性)。我们的磁盘仿真是兼容(兼容老的 DOS/Windows);我们的 CDROM 驱动也是兼容(兼容老的、其实是不健康的工业标准);我们能够在 DOS/LINUX 下以及在其他引导器中运行,这还是兼容(让引导器能够运行在流行的操作系统和引导管理软件之下)。我认为兼容性是我们的特色,这是其他软件没有着力去打造的。兼容性既包括上述软件层次的,也包括及硬件层次的(如对于众多 BUGGY  BIOS 的适应性,尤其是 U 盘 BIOS)。兼容就是提供方便的意思。兼容性是我们最重要的目标。离开了兼容性,那就不是 grub4dos 了(估计也就没人再去用 grub4dos 了)。我们一直为兼容性而努力。讲到兼容性,我再多说几句:重要的东西,我们要去兼容,不重要的,我们无需去兼容;优秀的东西我们去兼容,不太优秀的,就免了;流行的东西,我们着力去兼容,罕见的东西,我们没必要花费精力去兼容。如果把罕见的东西也当作兼容目标,这有可能引入 BUG。比如兼容 i386 是对的(要全力打造,尽可能做到百分之百兼容),但如果要兼容苹果或者 UNIX 机器,在我看来这是没有意义的(万一它多少带来一点 BUG 或者包袱或者负担,就是不划算的,得不偿失)。

TOP

GRUB4DOS is a powerful boot manager based on GNU GRUB. It can run as program in DOS and LINUX, chainload by Windows bootloader, syslinux and lilo, or boot from MBR. It also has advanced features like builtin BIOS disk emulation, ATAPI CDROM driver, etc.

TOP

我再修改几个细节:

GRUB4DOS is a universal boot loader based on GNU GRUB. It can boot off DOS/LINUX, or via Windows boot manager/syslinux/lilo, or from MBR/CD. It also has builtin BIOS disk emulation, ATAPI CDROM driver, etc.

我又考虑,“强大” 一词恐怕有广告嫌疑(尽量避免有人看了之后感到不舒服),所以还是替换为 “通用” 较好。universal, all-purpose, general-purpose 这三个词中,选哪个比较好呢?或者再选一个别的更合适的词。"通用"一词在这里的含义是 “可以用 grub4dos 来启动所有流行的操作系统”。由于字数的限制,我们不可能写上一句话,只能用 “通用” 一词来隐含表达了。

advanced 虽然也可以用,但似乎不用更好。使用的所有的词汇,尽量都是实实在在用来描述功能、特性的。

增加了从 CD 启动的描述。

把我们的 boot manager 改成 boot loader。boot manager 很容易做到操作系统中(例如 GNU 的 grub shell 就可以运行于 Linux 下),但 boot loader 就不容易做到操作系统(如 DOS 和 Linux)中了。所以,用 boot loader 较好。

把 windows 的 boot loader 改成 boot manager,目的是让 manager 这个关键字也在描述中出现一次,便于被 google 搜索到。

几个关键词都出现了:DOS,Windows,Linux,GRUB, grub4dos,  MBR,我觉得比较好了,你看看怎么样,把不通顺的语句再修改修改。

TOP

这还没有结束。还得为 freshmeat 写一个。

freshmeat 的影响很大,必须为它写一个很好的描述。它的字数限制比较宽。我也不清楚是多少个字符,但目前的描述是 459 个字节。估计它的限制是 512 或者 1024。以下就是这个 459 字节的描述:

GRUB for DOS is a rebuild of the GNU GRUB boot manager for DOS, and can be run under real mode DOS. It also has many new features. It can be booted through BOOT.INI of Windows (grldr) and kexec of Linux (grub.exe). It can directly boot NTLDR (WindowsNT/2K/XP), IO.SYS (Windows9x/Me) and KERNEL.SYS (FreeDOS). The disk emulation feature is another enhancement over GNU GRUB, and can be used to run legacy DOS/Windows9x systems with floppy or hard disk images.

还是由 windrv 和 bean 来开头吧,当然也欢迎其他朋友出手相助。

[ 本帖最后由 不点 于 2007-3-13 08:07 编辑 ]

TOP

发新话题