个人工具

UbuntuHelp:Installation/FromUSBStick/zh

来自Ubuntu中文

A2128讨论 | 贡献2008年12月17日 (三) 17:40的版本 isotostick.sh (命令行方式的shell脚本,从Linux中运行)

跳转至: 导航, 搜索

从USB记忆棒安装Ubuntu

本页描述了如何利用拷贝安装光盘的相关文件到USB驱动器,如U盘(或者闪存卡)等,并使其成为引导盘的方法来安装Ubuntu。这种方法对于那些超轻超小的没有光盘驱动器,但是又可以从USB启动的笔记本电脑来说是非常方便的。 主要的步骤包括:

  • 准备USB记忆棒
  • 从USB记忆棒启动电脑
  • 从可启动光盘中安装Ubuntu

“注:” 强烈建议使用最新版本的Ubuntu来准备USB记忆棒。 还可以参考来自官方安装指导的文档instructions for USB sticks

检查你的USB记忆棒

从USB记忆棒启动会非常方便,但是否能成功对于你使用的特定电脑和USB记忆棒的组合是没有保证的。即使你能用你的USB记忆棒在一台电脑上成功启动,这部代表它能够正常工作在另外一台电脑上。如果出现这种情况,你需要在你的电脑上用各种不同的BIOS的设置来试验。 确认所选用的记忆棒有足够大的容量来存储来自安装CD的内容(大约700兆),推荐使用1G的记忆棒。SYSLINUX 3.00以前的版本需要使用FAT16文件系统,大多数USB记忆棒自动格式化为这种文件系统。FAT16是最兼容的文件系统,也是最推荐的。而在3.00版本,SYSLINUX也支持FAT32的文件系统。 将你想用做安装引导的USB记忆棒插入电脑,几秒钟之后运行命令“dmesg”,或者命令“sudo fdisk -l”来查找系统给USB记忆棒指定的盘符。下面的指导里将使用“/dev/sdX1”,记住用刚才查到的盘符来替换X。

自动安装

UNetbootin (图形界面,可以从Windows或者Linux中运行)

UNetbootin 可以通过提供图形界面的方式从ISO文件自动创建可引导的Ubuntu UBS驱动盘,它可以从Windows系统,Linux系统或者从Ubuntu Live CD中执行。 模板:Http://sourceforge.net/dbimage.php?id=167328

(可选项)如果你想激活Ubuntu Live CD的初始启动菜单,比如你想禁止framebuffer或者想读取Ubuntu Live CD的帮助屏幕和cheatcodes,请在UNetbootin安装完成之按照以下方法对你的USB记忆棒做修改: 1)删除SYSLINUX.CFG或者将其更名为SYSLINUX.OLD 2)进入ISOLINUX文件夹将ISOLINUX.CFG更名为SYSLINUX.CFG 3)返回上一级文件夹,将ISOLINUX文件夹更名为SYSLINUX

注:无法工作在8.10 intrepid的网络安装 - fails to detect available hard drives - 有什么办法吗?

Live USB creator (图形界面,从Live CD中运行)

Live USB creator可以自动完成从运行的Ubuntu Live CD创建可引导的USB记忆棒的过程。非常简单,运行Live CD,安装该工具,从系统管理菜单中启动USB的安装。 https://launchpad.net/liveusb -- probono 模板:Http://klik.atekon.de/liveusb/screenshot.png 注:无法工作,说是我只能从Live CD中运行???

isotostick.sh (命令行方式的shell脚本,从Linux中运行)

警告: 从不被信任的网站运行脚本是非常非常危险的! 最简单的方法,该方法也可以用于桌面安装,是使用 isotostick.sh script from http://www.startx.ro/sugar/ 提供的isotostick.sh脚本。可以通过以下方法下载该脚本,改变运行模式并运行它:

sudo apt-get install syslinux mtools
wget http://www.startx.ro/sugar/isotostick.sh
chmod +x isotostick.sh
sudo ./isotostick.sh ubuntu-7.10-desktop-i386.iso /dev/sdX1

别忘了用前面章节查到的你的USB记忆棒的盘符替换/dev/sdX1! 当脚本试图拷贝symlinks /dists/stable 和 /dists/unstable的时候,你可能会看到“operation not permitted”,没有关系,那是因为FAT16文件系统不能处理symlinks。 现在你可以像从安装光盘启动那样从USB记忆棒启动来安装Ubuntu了。

注: 不能工作在ubuntu-8.10-server-amd64.iso - 说是a common cdrom drive could not be found and won't proceed with installation - 有什么建议?

注: Trying to use this on a Feisty machine to copy a Gutsy (livecd) iso. The script does not appear to copy all of the folders. It also looks for /usr/bin/syslinux/mbr -- which is not present with syslinux from the Feisty repos. --JulesTheMisfit

注: Seems to work, hardy.iso on a hardy machine. ---Bas

ubuntu-server-flashdrive-installer.sh (Command-line shell script, runs from Linux)

The UbuntuServerFlashDriveInstaller was developed from the instructions at this forum post. Comment: Does not work with ubuntu-8.10-server-amd64.iso - says no usable ISO found - any ideas?

Manual Approach

In short here's what you have to do:

  • Make the USB flash drive bootable using SYSLINUX.
  • Copy the contents of the Ubuntu CD to your flash drive (make sure you include hidden files/directories).
  • Rename the isolinux directory to syslinux and the file isolinux.cfg to syslinux.cfg
  • only for old versions of syslinux: Copy some files from sub-directories to the root directory and edit syslinux.cfg a bit.
  • Boot the computer from your USB flash drive.
  • only for the Alternate installer CD and pre-7.04 versions: Create a fake CD-ROM drive and mount the flash drive to /cdrom during the Ubuntu installation process.
  • only for the Alternate installer CD and Ubuntu 8.04: See a forum post on a file system support issue.

Make your USB stick bootable with SYSLINUX

SYSLINUX is a boot loader that operates off an MS-DOS/Windows FAT filesystem. Most USB flash drives come with a FAT filesystem. Here's how you can add a SYSLINUX bootblock to your USB stick:

  1. Make sure that "syslinux" is installed. SYSLINUX is available for both Linux and MS Windows (the executable is in the archive under \win32\syslinux.exe). For more information check the SYSLINUX homepage: http://www.syslinux.org/. On Ubuntu Linux, install it with:
 sudo apt-get install syslinux mtools
  1. Attach your USB stick to your computer and mount it. This may happen automatically. If you are using Linux and it does not get mounted automatically, you can mount it by using a command such as mount -t vfat /dev/sda1 /mnt . Note the mountpoint (i.e. /mnt in the example. If you are using Windows, it should get mounted automatically. (If it doesn't your version of Windows is probably pretty old, and you'll need to install a driver for the USB stick first. Check the vendor's homepage.) Note the drive letter that Windows assigns to it (for example F:).
  2. Make the USB stick bootable. If you're using Linux and your USB stick is mounted as in the above example, use: syslinux -s /dev/sda1. If you are using Windows and the flash drive has the letter F: assigned to it as in the above example, use: syslinux -s -m F:
  3. You should see a new file called ldlinux.sys in the root directory of your flash drive. (Note that it is a hidden file, you might not see it in Windows Explorer; try dir /a F: from a command prompt). Now you can boot from your USB stick. Read on once you get a SYSLINUX message and a ""boot:"" prompt.

Regarding the IDE disk: When in the USB cradle, the disk is sda, whereas when I mount it in the Libretto as the primary IDE disk, it is of course hda. (I shot myself in the foot a couple of times because of this ...) The automatic mounting is a bit distracting at times. My recommendation would be to pumount any device you intend to do any low-level operations on, and then mount and unmount as root as necessary. -- Ubuntu:Era Make sure to include the -m option with the Windows version of syslinux, to ensure that it copies a fresh ISOLINUX master boot record (MBR.) Otherwise the preexisting MBR may be used, which therefore may not point to your syslinux.cfg file.

Copy the Ubuntu CD to your USB stick

Copy the contents of the Ubuntu installation CD to your USB stick (i.e. all files and directories that are on the installation CD). Please do not copy an ISO image of the installation CD. Note that you don't have to burn the iso to copy it's contents, from linux it can be mounted like so:

mount -o loop /path/to/ubuntu.iso /path/to/mount/point

Make sure you also copy hidden files and directories (eg. ones with names beginning with a "."). In Gnome, press ctrl-H to see hidden files. In MS Windows you can use the following command, assuming that D: is your CD-ROM drive and F: is the USB stick:

xcopy /e /h /k d:\*.* f:

Move files to the root directory

This step is not needed if you prepared the flash drive with syslinux 3.35 or newer (Ubuntu 7.10). Copy (or move) the files stated from the following directories to the root directory of your USB stick:

  • isolinux (all files)
  • casper (vmlinuz and initrd.gz)
  • install (all files)

Move dapper to stable

Only needed for Ubuntu 6.06 Alternate install CD Rename the directory dists/dapper to dists/stable. I think this depends slightly on which CD and which installer you're using. I've had problems when dists/dapper was missing and when dists/stable was missing and I'm not sure what the circumstances were. When it happens, just switch to a shell and rename it on the fly, then return to the installer and ask it to retry. (The vfat filesystem doesn't support symlinks, unfortunately. If you have spare disk space and a little patience, you could copy one to the other for the total belt and suspenders solution.) -- Ubuntu:Era For anyone trying to install the new Ubuntu 7.04 (Feisty) with this guide: You can skip this step. In fact, it doesn't matter if you delete the file named dists/stable and rename the dists/feisty to dists/stable. -- Boo

Adjust SYSLINUX.CFG

For recent versions of syslinux, you just need to rename the isolinux directory to syslinux and rename the file isolinux.cfg inside this directory to syslinux.cfg . For older versions: Copy (or rename) the file isolinux.cfg to syslinux.cfg. Then edit the file and remove the /casper/ or /install/ reference in all paths. For example you would change the line containing DEFAULT /casper/vmlinuz to DEFAULT vmlinuz. Save the file, and make sure it is called syslinux.cfg. It does not matter whether the line breaks are in DOS or Linux format. Again, for anyone installing Ubuntu 7.04 (Feisty): Just remove the /install/ reference. The only line it is found is kernel /install/mt86plus, which must be changed to kernel /mt86plus. -- Boo no, it is not. there were 23 entries on isolinux.cfg -- capi I found twenty one, with Feisty, and syslinux 3.51 -- Gedanken

Boot from the USB stick

Boot the computer from the USB stick. The installation can now be done as if you would be booting from the installation CD.

Mounting the USB stick as /cdrom

This step is only needed for the Alternate install CD and Ubuntu 6.10 or older. Switch to the second virtual console during the first couple of dialogs (when asked about your preferred language for the installation etc.) by pressing the ""ALT-2"". Do the following:

  • mkdir /cdrom /dev/cdroms
  • cd /dev/cdroms
  • ln -s ../sda1 cdrom0 (where sda1 is your USB stick)
  • mount -t vfat /dev/cdroms/cdrom0 /cdrom

Then switch back to the first virtual console by pressing ""ALT-1"". Continue installing Ubuntu as if you were running from CD. This was a bit tricky until I got the hang of it. You need to have the hardware detection detect your hda before you can mount it! But just wait until it complains about a missing CD-ROM, then don't try to helpfully tell it where to look. Just accept the dialog where it says that this stage failed, then switch over to the virtual console and mount -t vfat /dev/hda3 /cdrom. (I skipped the gyrations with /dev/cdroms, they don't seem to be necessary.) Back in the installer, you should now be able to proceed from the next point in the dialog. (Remember, I'm talking about the text-only installer. It might be different in the GTK install.) -- Ubuntu:Era I think just ran into https://launchpad.net/distros/ubuntu/+source/casper/+bug/63277 -- Ubuntu:SvenHerzberg When installing Ubuntu 7.04 (Feisty), there was no need for me to mount the flash. -- Boo This is does not work for me using the alternate gutsy iso - i.e. mount -t vfat usbdev target fails with "no such device". There is a forum thread here: http://ubuntuforums.org/showthread.php?t=405008 Currently I know of no solution but to use the regular iso. -- Stenico

After Installing

After finishing the installation, edit /etc/fstab and make sure that /media/cdrom0 points to the CD drive and not to the USB stick. If you don't, you might get this error when trying to mount a USB stick: "Cannot mount volume. Invalid mount option when attempting to mount the volume." This is because the installer believes it is installing from a CD drive (bug 150872). Open /etc/fstab for editing, e.g. sudo gedit /etc/fstab Find a line like this (usually at the end): /dev/sdb1 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 and comment it out by placing a # at the beginning: #/dev/sdb1 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 You can also rename the real cdrom mount point to /media/cdrom0 if you like. Save the file, and you're done.

See also

Comments and Troubleshooting

- For an alternative method that works with Feisty see: https://help.ubuntu.com/7.04/installation-guide/i386/boot-usb-files.html) -- Monkeymind - The instructions there work great with gutsy as well, but on my machine i needed to add "vesa vga=771" to the "append=" line in syslinux.cfg. After that the process was completely unproblematic -- Matt Price - I also succeeded in installing on a Libretto 100CT by using a 2.5" IDE disk in one of those cheap USB cradles. This machine has no CD-ROM, no floppy (on my unit), no USB. I've taken the liberty to annotate my experiences in an indented style, like this. -- Ubuntu:Era - I installed on an IBM X40 using the contents of the mini.iso for edgy on a USB stick instead of using the iso for the bulkier alternate CD. I only had to install syslinux and rename isolinux.cfg to syslinux.cfg (I didn't have to change the contents of the file). It was very easy. I didn't have to try fooling the installer into thinking the stick was the CD and mess with symlinks etc. -- MikkelErup - I succeeded installing Ubuntu 7.04 (Feisty) with this guide and just a few changes I added. Ubuntu is running stable and without any problems -- Boo - Short guide (to get the idea): mkfs.vfat /dev/<usbstick>; fdisk /dev/<usbstick> (make bootable); ./isostick.sh ubuntu-7.10-desktop-i386.iso /dev/<usbstick>; -- Syke - Thanks for the advice guys, it also worked on my laptop: got it installed with 7.10 (and the encrypted LVM partitions I needed). I needed a) a network link and install mini.iso http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/netboot/mini.iso, b) a working 7.10 system with syslinux and mtools (On feisty: apt-get install syslinux). c) cat /etc/mtab to find out my usb was at /dev/sdb1, mounted as /media/Flashdisk:

  • syslinux -s /dev/sdb1
  • mount -o loop /home/stilus/Desktop/mini.iso /media/cdrom0/
  • cp -r /media/cdrom0/* /media/Flashdisk
  • cd /media/Flashdisk
  • mv isolinux.cfg syslinux.cfg
  • cd /
  • umount /media/Flashdisk

Plugged this Flashdisk in my to-be-installed system, and that was that: let the netinstall begin!! -- stilus - This does not work, at least for me. Boot fails in syslinux already: selecting "install" boot menu option shows a dialog "install./vm" with button "Start", which does nothing. It seems it somehow tries to interpret the path "install/vmlinuz" as a single 8.3 filename, resulting in the nonsense "install./vm". Same happens for all other boot options. After booting manually, I got further errors later on when trying to find the packages to install. - What about a howto or tutorial about use Grub instead of syslinux ? - (Hardy) I had to toggle the bootable status of the USB stick using parted, as per the instructions isotostick.sh prints out: Partition isn't marked bootable! You can mark the partition as bootable with # /sbin/parted /dev/sdc (parted) toggle N boot (parted) quit

On Partitioning the Flash drive

- I partitioned the disk for installation with room for several boot images. I created hda1 for /boot (in retrospect, maybe not necessary), hda2 for swap (again in retrospect, could go in an extended partition; if I do it again I'll add the good old Woody installer rescue288 disk image -- still viable and valuable as a rescue disk!), hda3 for the Dapper 6.06 server install CD filesystem (this is a low-memory system which can't boot the regular live CD, I have been told), and hda4 as an extended partition for the remaining BIOS hibernation and actual root filesystem partitions. At this stage, I only marked the installer partition as bootable. It's a FAT16 partition (partition type 06). Since there is no filesystem yet, the newly created partition needs to be formatted. mkfs -t vfat /dev/sdXY ... and be real careful to not format the wrong disk by mistake. (So in my case, this would be sda3 here.) No need to mount any other partitions than hda3/sda3) although Ubuntu will in fact automatically try to mount all the ones which have a filesystem on them. Actually, I momentarily unplugged and then replugged the USB cable at this point to make sure the partition table was synced OK, and then the new partition was automatically mounted on /media/usbdisk (and usbdisk-1, usbdisk-2 etc for additional partitions or devices ... mount with no arguments will tell you what's where, if you're unsure).