syslinux应用简介

Published by spyrise, at 22:51, 2008/10/18. Category: IT技术 » 软件应用

Oct

18


syslinux是一个轻量级的启动装载器,只用Windows的人可能不明白是什么东西,如果玩过Linux,一定知道lilo和grub,是的,所谓轻量级我想就是跟grub们相比而言的,尤其是grub2。

syslinux有很多变种(都是官方的)适用于各种媒质,如syslinux用于从微软的文件系统fat 16/32引导,isolinux用于从光盘引导,pexlinux用于从网络引导,extlinux用于从ext2/3文件系统引导。

从这也可以看出,syslinux对于各种设备的兼容做的很细致,据grub4dos的人说,用于兼容性方面的代码甚至超过了程序主要功能的实现代码。

Ubuntu的Live CD就是使用isolinux来引导的,如果你不想为了一个Alpha版本而浪费一张光盘,可以将iso镜像文件放在U盘或移动硬盘上,轻松的换用syslinux来引导。

        
  1. 将iso镜像中的casper和isolinux文件夹拷贝到移动硬盘的fat32分区根目录,这对于引导系统,只想体验一下LiveCD来说已经足够了,如果你还要进行系统安装等,可能还要其它文件。
  2.     
  3. 将isolinux文件夹改名为syslinux,现在将syslinux文件夹中的isolinux.cfg文件改名为syslinux.cfg。
  4.     
  5. 安装syslinux到移动硬盘。如果是在Windows下,使用下面的命令:
    syslinux.exe /mfa G:
  6.     a表示激活分区,f是force的意思,m是写mbr,G:是移动硬盘分区的盘符。运行后会在移动硬盘根目录生成一个ldlinux.sys的隐藏文件。
        
        Ubuntu的Live CD使用的isolinux打了gfxboot补丁,如果你使用官方版本的syslinux,启动后就没有菜单以及语言选择等内容。所以建议大家使用同样打了补丁的Ubuntu版本的syslinux:
        
    sudo aptitude install syslinux mtools
        sudo syslinux -f /dev/sdb1
        
    需要mtools是因为要修改fat32文件系统上的文件属性。/dev/sdb1是移动硬盘fat32设备的文件名,不需要mount。
        
    好了,现在插上移动硬盘,将电脑设置为从USB设备启动,OK?如果启动失败,很有可能是分区表的原因,想想当初,我将移动硬盘上的第一个分区设为主分区,fat32格式,也许是个英明的决定。
    
    附记:除了gfxboot,syslinux也有自己的菜单系统这里有一个样例配置文件,在它的邮件列表上,说起gfxboot,有人似乎很不屑suse写的代码。                
    

    原文地址 http://gfw.appspot.com/jackphil/2008/02/syslinux.html

Tags: , ,

syslinux简介 - syslinux制作启动U盘

Published by spyrise, at 22:45, 2008/10/18. Category: IT技术 » 软件应用

Oct

18


一、引导程序概述

任何一个操作系统在任何一个硬件平台上的运行都需要一个引导的过程,即,初始化软件环境、把内核从存储介质放到内存当中去,并开始运行。当然对于某些简单软硬件系统,这个过程可能及其简单,而对于 PC 就要略微复杂一些了。

PC 的引导程序上承 BIOS,下接内核的初始化代码,虽然开一次机只运行一次后就不留痕迹了,不过还是相当重要的。所有的引导程序都在做类似的事情:

        
  • 驻留在存贮介质的特殊位置可以被 BIOS 启动,或是自己是某一系统的可执行文件,可以被用户显式或隐式在该系统(宿主系统)内启动;
  •     
  • 了解要被启动的必要启动文件的位置,包括系统内核、ramdisk 等,并把它们读取出来、装载到内存之中;
  •     
  • 构造环境、运行操作系统的内核,自己则就此退出历史舞台。

历史上,用于 Linux 的最著名的引导程序莫过于 LILO 和 Grub 了,作为通用的引导程序,二者用途广泛,但对于一些特殊的场合,譬如引导程序可利用的空间比较有限的可移动存储介质 (通俗地说,包括光盘、软盘、u 盘等),它们有些过于厚重了,这就引出了我们今天的主角 --- SYSLINUX/ISOLINUX,现在,你只要知道他们是引导程序就足够了,接下来,我们还要插入一些废话。

二、initrd

initrd = init ramdisk, 顾名思义,就是在启动时使用的一个内存虚拟磁盘,它是系统广泛的硬件支持性的必需品。

我 们知道,Linux 的驱动程序是内核的一部分,它们提供了硬件向上层的抽象接口,Linux 内核的核心子系统 --- 虚拟文件系统部分的工作强烈依赖于底层硬件驱动程序的支持,在启动过程当中,当某些必备的驱动程序无法使用的时候,比如 EXT2 文件系统、IDE 硬盘适配器等无法工作的时候,系统启动将就此中止,发生所谓的``Kernel Panic'',这也是初学者编译内核最常遇到的困难。

然而,我们当然不能将所有的驱动都编译到内核当中去,因为

        
  • 我们不能无限制地加大内核的尺寸,这对于系统资源,尤其是引导过程中非常有限的可用存储资源是难以承受的
  •     
  • 我们可以把很多驱动程序编译成模块,随用随加载
  •     
  • 极少数情况,某些模块是相互冲突的,比如 2.4 内核的某些版本之中,reiserfs 和 ext3 两种驱动不能同时被编译到内核当中。

所以,我们只能在内核中放入必要的驱动程序,其余的不那么需要的部分编译成模块放到 /lib/modules/`uname -r`/ 之中,在需要的时候会被加载。

但 是,对于具有通用性的内核,是很难论断出哪几种驱动程序才是真正必须的,究竟是 Intel 的 IDE 磁盘控制器还是 AMD/nVidia 的,抑或是 VIA 的,乃至光纤通道SCSI 磁盘……是阿,这真是个很困扰人的问题,没有一个驱动可以在占用绝对少的空间的前提下应付所有的设备,于是,我们退而求其次,寻求一个中间介质 --- ramdisk

在内核启动前,引导程序首先在内存之中构建一个 ramdisk,成为一个基本文件系统,然后 Linux 内核以此为自己的根文件系统启动,这样的好处是可以不必理会磁盘驱动的问题,只要能驱动 ramdisk 就可以了。

用 ramdisk 启动之后,在 ramdisk 的启动脚本 (一般叫 /linuxrc) 之中,针对硬件尝试 ramdisk 里面的 /lib/modules/`uname -r`/,加载恰当的驱动,这时系统已经具备了切换到硬盘或其他介质上的文件系统的条件了。

机 不可失,这时,我们首先加载硬盘或光盘、u 盘等启动介质,然后设该介质为根分区,并运行其 init 进程为 1 进程,之后,在 init 脚本中,释放掉 initrd 的空间,这就是借助 initrd 的引导过程。在这个过程之中 引导程序帮我们多做了一件事 --- 构建 ramdisk, 把 initrd 放入内存。

三、用 SYSLINUX/ISOLINUX 引导软盘和光盘

上 文已经说过了,SYSLINUX/ISOLINUX 是专门用来引导可移动介质的轻量级引导程序,因为这样的介质通常不会固定只针对一种硬件,initrd 当然是 SYSLINUX/ISOLINUX 必须支持的功能了。这两种引导程序其实是一样的,没有多大区别,只是放在不同的设备的引导区罢了。

3.1 配置 SYSLINUX/ISOLINUX

对于这两种引导程序,都会有一段引导代码,写入引导代码的时候,还同时需要一个配置文件: syslinux.cfg/isolinux.cfg,同样,这两个文件也是一样的,唯一的区别在于文件名,其各个字段的写法如下:

     DISPLAY xxx.txt
这指定了一个文件名,会在启动的时候显示的内容,该文件甚至可以包含一个 RLE 编码的图形文件,也就是大家在安装光盘启动时看到的那个;不过这个字段不甚重要,我们就略过了。

     DEFAULT linux
指定 label 是 linux 的启动选项为缺省,当然也可以是别的。

     LABEL linux
kernel vmlinuz
append initrd=initrd26.gz ramdisk_size=1000000 vga=791
这就是一个启动描述,前面的 label 大家都认识了,之后分别是指定 kernel 和内核参数,其中重要的参数就是 initrd= 指定 initrd 的文件和 ramdisk_size= 指定 initrd 的尺寸上限。其余的内核参数还可能有很多,不过这里的参数我们一般都可以抄过来。这样的启动选项描述是可以有若干个的。

     PROMPT=1
这是说,向用户提示输入选择,直接回车就是缺省选项了

     TIMEOUT=0
没有时间限制,当然也可以指定一定时间之后自动进入缺省选项。

好了,就这么多,如果你会用 LILO 的话,用这个一定得心应手,说实话 grub 也差不了太多。

3.2 安装 SYSLINUX/ISOLINUX

配置文件写完了,现在进入实质阶段,这里,两种引导程序还是略有差别的,首先介绍SYSLINUX:

首先格式化引导介质为 FAT16 格式 (软盘似乎应该是 FAT12),我们的例子里面是 U 盘,
mkdosfs -F16 -I /dev/sda
我们是操作整个 U 盘,而不是里面的唯一分区,这种情况不是很多见,只是手上的 U 盘比较特殊,大部分情况下,我们也可以
mkdosfs -F16 /dev/sda1
然后挂在该 U 盘,放入我们的 syslinux.cfg 以及 kernel 和 initrd.gz,还有其他启动所需要的东东,之后 umount 该 U 盘。

* 执行下面操作之前,必须 umount U 盘!*

然后写引导区:
syslinux /dev/sda (或 syslinux /dev/sda1,如果是格式化的 /dev/sda1 的话)
至此就完成了。

对于光盘,同样不复杂,我们用 ISOLINUX:

在 准备制作 ISO 的目录里添加一个子目录,比如 boot/isolinux/ ,然后放入 isolinux.cfg 和一个对所有光盘都一样的 isolinux 提供的引导介质 isolinux.bin,当然还要放入相应的 kernel, initrd 等等,然后,制作 iso 的时候要使用 -b 参数:
mkisofs -o output.iso \
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
for-iso-dir/
最后的参数就是指定的光盘的目录了,-c 参数的那个文件是自动生成的,不用太担心,其余参数都是固定的。事实上,也常常有人用 isolinux/ 而不是 boot/isolinux/ ,这都是约定俗成的,你完全可以用自己的。这里的路径都是相对于光盘的根的,而和制作光盘时的工作目录没有关系。

至此,你也会用 SYSLINUX/ISOLINUX 了。 :)

四、实战 --- damn small linux + debian installer, 2 in 1 usb disk

        
  • 1 下载 di 的 hd-image 里的 kernel image 和 initrd,放入 U 盘,同时把 businesscard iso 也放进去,从 iso 里找到 isolinux.cfg,记下里面的启设置
  •     
  • 2 下载 dsl,把 KNOPPIX 目录搬到我们的 U 盘里,把 boot/isolinux/ 里面的 kernel image 和 initrd 也放入 U 盘的根目录,这时,U 盘根目录里同时有二者的启动文件了,也记住 dsl 里面的 isolinux.cfg 的启动选项。
  •     
  • 3 以其中一个的 isolinux.cfg 为基础,加入另一个的启动参数,注意 label 命名不要冲突了就可以了。
  •     
  • 4 umount U盘,然后对 U 盘运行 syslinux,写引导区,大功告成。

如前面帖子说过,dsl 的 initrd 之中,只搜索 /dev/sda[1-9] 而不搜索
/dev/sda,所以,如果如果像我们一样被迫用 /dev/sda 的话,就不得不修改一下 dsl 的 initrd 里面的 linuxrc 了,除此之外,没有什么其它值得大书特书的了。

Tags: , , ,

粉喜欢的一套表情

Published by spyrise, at 08:59, 2008/10/08. Category: 心情

Oct

8


             
             
             
            

 

尤其喜欢这几个:

 

注:此乃KDS(宽带山)上的特有表情符。比较小,而且非常有趣可爱~

什么时候,我把Fckeditor里面的默认msn表情替换成这些就好了。

 

Tags: , ,

上海身份证号归属区县 超详细

Published by spyrise, at 08:56, 2008/10/08. Category: 生活实用

Oct

8


请各位对号入座,谢谢downloading

310101 上海市黄浦区
310102 上海市黄浦区(原南市区,已绝版)
310103 上海市卢湾区
310104 上海市徐汇区
310105 上海市长宁区
310106 上海市静安区
310107 上海市普陀区
310108 上海市闸北区
310109 上海市虹口区
310110 上海市杨浦区
310111 上海市宝山区(原吴淞区,已绝版)
310112 上海市闵行区
310113 上海市宝山区
310114 上海市嘉定区
310115 上海市浦东新区
310116 上海市金山区
310117 上海市松江区
310118 上海市青浦区
310119 上海市南汇区
310120 上海市奉贤区
310220 原上海市(已绝版)
310221 上海市闵行区(原上海县,已绝版)
310222 上海市嘉定区(原嘉定县,已绝版)
310223 上海市宝山区(原宝山县,已绝版)
310224 上海市浦东新区(原川沙县,已绝版)
310225 上海市南汇区(原南汇县,已绝版)
310226 上海市奉贤区(原奉贤县,已绝版)
310227 上海市松江区(原松江县,已绝版)
310228 上海市金山区(原金山县,已绝版)
310229 上海市青浦区(原青浦县,已绝版)
310230 上海市崇明县

Tags: , ,

一定要HDMI吗?HDMI大解密!

Published by spyrise, at 21:42, 2008/10/04. Category: 电信/电话/电视/宽带 » 电视

Oct

4


HDMI可能是近年来与高清相关的硬件新技术中,争议最多最令人迷惑的之一。有些朋友坚定的认为HDMI才是输出品质的象征,而也有不少朋友甚至包括一些显卡厂商的人士,声称HDMI对于显卡来说其实是没有多大意义的东西。那么究竟怎么看待HDMI呢?

我们都知道,HDMI是在DVI基础上发展而来的,二者在电路拓扑结构上是一致的。那么为什么在已经有了DVI的基础上,还要搞出一个有很多类似设计的HDMI接口呢?搞清楚这个问题,就可以顺利的理解HDMI的应用价值了。

Tags: , , ,

分页: 9/27 第一页 上页 4 5 6 7 8 9 10 11 12 13 下页 最后页 [ 显示模式: 摘要 | 列表 ]

日历

统计

其他