蒙古青年论坛

 找回密码
 注册
查看: 1026|回复: 3

u盘上跑 Linux系统

[复制链接]
发表于 2009-1-19 11:12:15 | 显示全部楼层 |阅读模式
虽然本文采用的是Ubuntu,但实际上依此方法安装其他Linux live CD发行版也是可行的。 

从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将会被修复。
 楼主| 发表于 2009-1-19 11:13:53 | 显示全部楼层
其它可供选择的Linux发行版本包括:

· Arch Linux
· BackTrack
· CentOS
· CloneZilla
· Damn Small Linux
· Debian
· Dreamlinux
· Elive
· FaunOS
· Fedora
· FreeBSD
· FreeDOS
· Frugalware
· Gentoo
· Gujin
· Kubuntu
· Linux Mint
· Mandriva
· NetBSD
· NTPasswd
· openSUSE
· Ophcrack
· Parted Magic
· PCLinuxOS
· Puppy Linux
· Slax
· SliTaZ
· Smart Boot Manager
· Super Grub Disk
· Ubuntu
· Xubunu
· Zenwalk
发表于 2009-1-19 12:55:27 | 显示全部楼层
如果谁搞个"U盘上跑Windows系统"的东西得把微软气死.
 楼主| 发表于 2009-1-19 23:52:09 | 显示全部楼层
本帖最后由 蓝天雄鹰 于 2009-1-19 23:57 编辑

据说已经有人在usb上跑vista,看样子以后移动操作系统是趋势,只要提供裸机,每个人各带各的硬盘,上班一插下班带走,硬盘往3g手机上一插,传大文件不是问题了。这是挣钱的机会。钱能催出100g,200g的u盘出来,4g的移动通信也会被催出来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|蒙古青年论坛

GMT+8, 2026-7-25 05:37 , Processed in 0.011353 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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