Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2421266
  • 博文数量: 401
  • 博客积分: 12926
  • 博客等级: 上将
  • 技术积分: 4567
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-22 14:51
文章分类

全部博文(401)

文章存档

2015年(16)

2014年(4)

2013年(12)

2012年(82)

2011年(98)

2010年(112)

2009年(77)

分类: LINUX

2009-09-25 17:43:50

    从u盘上运行Linux,丰富了live CD的体验,使你可以在任意机器上运行Linux,比随身携带一张光盘方便多了。

    1.  准备工作

    在开始之前,你至少需要进行如下准备:

  • 一张Ubuntu live CD 或者 .iso 镜像文件
  • 容量至少为1G的 U 盘
  • 运行的 Linux 操作系统

    2.  设定u盘

    首先,将u盘插上,检查设备是否被认出。为了找到设备,请运行以下命令:

   $ sudo fdisk -l

   在我的系统中,此设备的盘符为 /dev/sdb ,本文以 /dev/sdb 为例讲解,读者请根据自己系统的实际情况更改(可能是sda,sdc...)。

   系统发现 U 盘后,将要创建分区。

   注意:使用错误的盘符可能破坏你的硬盘分区,所以请谨慎输入。

    创建分区

   将已经挂载的 U 盘卸载:

    $sudo umount /dev/sdb1

   然后使用fdisk,一个编辑分区的工具:

    sudo fdisk /dev/sdb

   我们删除 U 盘的分区后,在上面创建两个新分区:一个容量为750MB的fat文件系统分区,用来保存 live CD 镜像中的文件,其余的另一个分区。

   然后输入的格式为“d x”,x为分区的盘符,以下依次输入:

    *n 创建新的分区
    *p 设为主分区
    *1 设为第一主分区
    *接受默认选项或输入“1”从第一柱面启动
    *+750M 将空间设置为750MB
    *a 将分区设为可以启动的活动分区
    *1 选择这个分区
    *t 改变分区格式
    *6 设置为FAT16分区

   第一个分区设置完成了,进行第二个:

    *n to create yet again a new partition
    *n 再次创建一个分区
    *p 设为主分区
    *2 设为第二分区
    *回车接受默认选择
    *接受默认选择,用尽所有容量
    *最后,输入 w 使U盘完成上述更改

    分区完成后,进行格式化。

    格式化分区

    第一个分区将要被格式为FAT16文件系统,并将 U 盘设定为自启动。

    $ sudo mkfs.vfat -F 16 -n liveusb /dev/sdb1

    第二个分区将要被格式化为 ext2 文件系统,块长(blocksize)为4096字节,并且将该卷进行casper-rw(否则将不能成功完成目标!)

    $ sudo mkfs.ext2 -b 4096 -L casper-rw /dev/sdb2

    现在,需要将 live CD 镜像复制到 U 盘中。

    3.  从u盘中安装Ubuntu

    挂载Ubuntu live CD 镜像

    首先需要挂载ubuntu的镜像。有两种方法,通过“.iso”文件或者是光盘。

    从 CD 挂载

    将Ubuntu或其他发行版光盘插入电脑,将会被自动挂载。否则,按如下操作便能成功挂载。

    $ sudo mount /media/cdrom

     从 .iso 镜像文件挂载

    需要创建一个临时的文件夹,以 /tmp/ubuntu-livecd 为例,然后将其挂载:

    $ mkdir /tmp/ubuntu-livecd
    $ sudo mount -o loop /path/to/feisty-desktop-i386.iso /tmp/ubuntu-livecd

    挂载 U 盘的分区

    将u盘再次插入,两个分区将显示为/media/liveusb和/media/casper-rw。如果该情况未能出现,你需要手动挂载:

    $ mkdir /tmp/liveusb
    $ sudo mount /dev/sdb1 /tmp/liveusb

    所有需要的分区都已经被挂载,该复制文件了。

    将文件复制到 U 盘中

    找到CD镜像的路径(笔者的情况是/tmp/ubuntu-livecd,当然也可能是/media/cdrom),然后复制到作为根分区的u盘第一分区:

    包括casper,disctree,dists,install,pics,pool,preseed,.disk这些目录,isolinux目录下的 所有文件,还有md5sum.txt,README.diskdefines,ubuntu.ico,casper/vmlinuz,casper /initrd.gz和install/mt86plus。

$ cd /tmp/ubutu-livecd
$ sudo cp -rf casper disctree dists install pics pool preseed .disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico casper/vmlinuz casper/initrd.gz install/mt86plus /media/liveusb/

    可能出现符号链接不能被创建,你可以忽略过去。

    下面我们将 U 盘第一分区中的isolinux.cfg更名为syslinux.cfg:

    $ cd /tmp/liveusb
    $ sudo mv isolinux.cfg syslinux.cfg

    根据你的设置改变/tmp/liveusb

    按照下面编辑syslinux.cfg文件:

DEFAULT persistent
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND  file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL persistent
  menu label ^Start Ubuntu in persistent mode
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL live
  menu label ^Start or install Ubuntu
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL xforcevesa
  menu label Start Ubuntu in safe ^graphics mode
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL check
  menu label ^Check CD for defects
  kernel vmlinuz
  append  boot=casper integrity-check initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL memtest
  menu label ^Memory test
  kernel mt86plus
  append -
LABEL hd
  menu label ^Boot from first hard disk
  localboot 0x80
  append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt

    将 U 盘设置为可引导的

    为完成此步骤,需要安装syslinux:

   $ sudo apt-get install syslinux

    最后卸载/dev/sdb1,并使其可引导:

    $ cd
    $ sudo umount /tmp/liveusb
    $ sudo syslinux -f /dev/sdb1

    重启,将BIOS设为可以从 U 盘引导,就可以享受 U 盘中的Ubuntu了!

    4. 疑难排解

    如果不能从 U 盘引导,可能是由于主引导记录(MBR)被破坏。你可以用lilo来修复这个问题:

    $ lilo -M /dev/sdb/dev/sdb上的MBR将会被修复。
阅读(1569) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~