我成功地在 WD“My Passport”(1 Tb)上顺利安装了 13.04 (64)。效果很好……所以我想进一步简化它,并在 16 Gb 拇指驱动器上尝试“LiveUSB”。
我使用了 4 个不同的 USB 安装程序,最后一个是 Unetbootin(包括 Ubuntu 启动)。我将持久文件设置为 4 Gb,以便进行完整设置。没有人正确设置持久文件(这是我的猜测),因为我的所有更改都没有保存。
我读过几个关于这个问题的答案,但全部都没有相关信息(死胡同)或所说的内容已经存在。例如,编辑 syslinux.cfg 文件以进行 -- persistent。
我猜想这与“权限”有关,尝试将用户设置为管理员,但同样无法保存。在我看来,如果他们现在使用 SSDD 来替换机械 HDD,那么拇指驱动器应该可以进行标准加载/安装...
请注意,在作者网站上搜索“支持”一词,结果为零。
我格式化了驱动器“fat32”
这是驱动文件;
01/17/2013 12:06 PM 1,345,530 ubnkern
04/24/2013 01:10 PM 22,252,127 ubninit
05/06/2013 02:08 PM <DIR> .disk
05/06/2013 02:08 PM <DIR> EFI
05/06/2013 02:08 PM <DIR> boot
05/06/2013 02:08 PM <DIR> casper
05/06/2013 02:08 PM <DIR> dists
05/06/2013 02:08 PM <DIR> install
05/06/2013 02:08 PM <DIR> isolinux
05/06/2013 02:08 PM <DIR> pics
05/06/2013 02:08 PM <DIR> pool
05/06/2013 02:08 PM <DIR> preseed
05/06/2013 02:08 PM 1,053 ubnpathl.txt
04/24/2013 02:25 PM 229 README.diskdefines
04/24/2013 02:23 PM 134 autorun.inf
04/24/2013 02:25 PM 18,354 md5sum.txt
04/23/2013 10:10 AM 2,559,512 wubi.exe
05/06/2013 02:11 PM 11,694 ubnfilel.txt
>> 05/06/2013 02:11 PM 1,880 syslinux.cfg
05/06/2013 02:11 PM 60,928 menu.c32
>> 05/06/2013 02:24 PM 4,294,963,200 casper-rw
如你所见,casper-rw 就在那里。
另外,这是 syslinux.cfg 文件的内容;
default menu.c32
prompt 0
menu title UNetbootin
timeout 100
label unetbootindefault
menu label Default
kernel /ubnkern
append initrd=/ubninit file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash -- persistent
label ubnentry0
menu label ^Help
kernel /ubnkern
append initrd=/ubninit persistent
label ubnentry1
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash -- persistent
label ubnentry2
menu label ^Install Ubuntu
kernel /casper/vmlinuz.efi
append initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash -- persistent
label ubnentry3
menu label ^Check disc for defects
kernel /casper/vmlinuz.efi
append initrd=/casper/initrd.lz boot=casper integrity-check quiet splash -- persistent
label ubnentry4
menu label Test ^memory
kernel /install/mt86plus
append initrd=/ubninit persistent
label ubnentry5
menu label ^Boot from first hard disk
kernel /ubnkern
append initrd=/ubninit persistent
label ubnentry6
menu label Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash -- persistent
label ubnentry7
menu label Install Ubuntu
kernel /casper/vmlinuz.efi
append initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash -- persistent
label ubnentry8
menu label OEM install (for manufacturers)
kernel /casper/vmlinuz.efi
append initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true -- persistent
label ubnentry9
menu label Check disc for defects
kernel /casper/vmlinuz.efi
append initrd=/casper/initrd.lz boot=casper integrity-check quiet splash -- persistent
这是我的一个想法,这些“casper”引用应该读作 casper-rw 吗?
编辑#3
这是“Grub.cfg”文件内容;
if loadfont /boot/grub/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
menuentry "Try Ubuntu without installing" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --
initrd /casper/initrd.lz
}
menuentry "Install Ubuntu" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash --
initrd /casper/initrd.lz
}
menuentry "OEM install (for manufacturers)" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true --
initrd /casper/initrd.lz
}
menuentry "Check disc for defects" {
set gfxpayload=keep
linux /casper/vmlinuz.efi boot=casper integrity-check quiet splash --
initrd /casper/initrd.lz
}
好的,这直接启动到桌面,没有登录提示(NATCH)。我认为 GRUB 是问题所在。以下是启动顺序;
- 引导菜单
- 选择 EFI USB
- 然后 Grub 有 4 个选择(我相信),它们是;
- 尝试 Ubuntu(无需安装)
- 安装 Ubuntu
- OEM 安装
- 检查光盘
当然,我选择“尝试”。我认为这才是真正的问题。重启后创建用户的努力失败。似乎没有任何内容被保存/写入 casper-rw 文件。
syslinux.cfg 中有 9 项,Grub 显示 4...
答案1
如果您使用的是安全/uefi 启动机器,则可能会遇到错误 1159016。uefi 机器使用 grub 而不是 syslinux,因此在修复之前,解决方法是编辑 stick/s /boot/grub/grub.cfg 并在内核行中添加单词“persistent”。
答案2
这实际上不符合我之前的答案的范围,所以我要提出一个新的答案。
好的,您使用 Unetbootin 创建了 USB 棒。查看您的 syslinux.conf,它看起来有点混乱,但您说您可以进入正常运行的 Ubuntu。
好吧,为了摆脱使用 Unetbootin 等制作磁盘时添加的额外变量,我们将执行以下操作真实的创建 BootUSB 的方法。
自 2010 年底以来,Ubuntu 一直以所谓的“混合 ISO”的形式发布。混合 ISO 是硬盘映像和 CD 映像的混合体。基本上,它是 CD ROM,开头有一个 512 字节的引导加载程序,因此它也可以作为硬盘启动。
这对你来说意味着什么?这意味着你可以直接将 CD 映像复制到 USB 驱动器上,并拥有一个完全可启动的 Ubuntu USB 驱动器。
注意:使用 dd 创建磁盘将会擦除一切备份您想要保存的所有内容(以及您的 casper-rw 文件,因为它不存在于 CD 上)!
视窗:
编辑:实际上有一种更简单的方法可以做到这一点,技术含量更低。您可以直接下载Win32 磁盘映像程序,它由 Ubuntu 开发人员开发,功能与 Windows 版 dd 相同,只是方式更简单。它非常直观。如果您选择这种方式,只需从提供的链接下载并跳到最后一节。
Windows 本身没有直接将文件复制到硬盘的功能,所以你需要做的第一件事就是下载dd(适用于 Windows)(我在测试中使用了 0.5 版本)。
为了确保硬盘的安全,您应该将文件从 dd.exe 重命名为 dd-removable.exe。这将确保 dd 仅在可移动磁盘上工作。
接下来,你首先需要弄清楚哪个您要将图像复制到的驱动器。
首先,打开命令提示符(Ctrl+R),输入“cmd”并按回车键。
从这里,您需要cd
进入保存 dd 程序的目录。对我来说,这是桌面。对你来说,这可能是下载。
cd Desktop
现在,你想让 DD 给你一份所有设备的列表
dd --list
这将打印出所有设备的列表。您要找的是标有“可移动媒体”的设备。(我相信,我的 VM 测试用例仍然将其显示为固定磁盘,但事实并非如此)。
在所有标有“可移动媒体”的条目中,您需要找到与硬盘大小相同的条目。这可能有点困难,因为它是以字节为单位的,但一般公式是每 1 GB 10 亿。这不能保证,但它应该是列表中的最后一个。
找到硬盘的磁盘号后,您需要继续将文件复制到 USB 磁盘!您将运行类似以下命令:
dd if=C:\path\to\ubuntu\ISO of=\\?\Harddisk2\Partition0
需要注意的是,它始终是 Partition0,这里的变量是要使用的“硬盘”号。在我的例子中,我有一个虚拟启动硬盘(默认情况下应该是 Harddisk1),并且有一个 USB 虚拟磁盘,最终是 Harddisk1。
Linux:
首先确定您的闪存驱动器的设备名称:
山
在列表中,您应该会看到一些内容,例如 /media/????-???? 每个“?”都是来自 AF 的数字或字母。如果您有多个这样的文件,请将 CD 转到 /media 并找出哪个文件包含 USB 中的文件。如果是 0000-FFFF,则在命令中查找该条目mount
。它应该显示类似“/dev/sdb1 安装在 /media/0000-FFFF 上”的内容。这里要注意的重要一点是“/dev/sdb1”
因此,如果您得到的输出是“/dev/sdb1”,那么驱动器设备就是 /dev/sdb——只需从末尾删除数字即可。
在运行下一个命令之前,请确保按照上面所述进行备份。
sudo umount /dev/sdb1 #unmount your flash drive
sudo dd if=/path/to/ubuntu/iso of=/dev/sdb #write the file to the flash drive
两个都:
命令完成后,您应该有一个可启动的 Ubuntu,其中没有 Unetbootin 或任何程序添加的所有额外内容。这是一个纯粹的 Ubuntu 磁盘,就像从 CD-ROM 中制作出来的一样。
在重新放回备份文件之前,您需要使用 Windows 磁盘实用程序(控制面板中的管理工具->计算机管理下)或 Gparted 调整分区大小。
一旦您拥有可以运行的磁盘,您就可以编辑 /boot/grub/menu.cnf 和(我相信是)/isolinux/txt.cfg 并附加“持久”选项并将备份的 casper-rw 放入驱动器的根目录中。
答案3
我已经对 Ubuntu 进行了很多实时自定义,虽然已经过去了一段时间。我还记得你必须手动设置持久性的那一天。
- 我看到您有
persistent
内核选项,这是第一步。为了安全起见,您还应该添加persistent
其他启动项(除“内存测试”和“从第一个硬盘启动”之外)。 - 您应该对 USB 磁盘使用基于 FAT 的文件系统。
- 持久文件有命名为 casper-rw 并且必须位于驱动器的根目录
如果你没有这样的 casper-rw 文件,那就是你的问题。我将指导你通过 Ubuntu LiveUSB 本身创建一个。
首先,当你启动 LiveUSB 并进入桌面时,打开终端并输入
mount -o remount,rw /cdrom #(/cdrom is actually your USB disk when using a USB).
由于基于 FAT 的文件系统无法创建稀疏文件,因此我们必须等待dd
创建完整的 4GB 文件:
dd if=/dev/zero of=/cdrom/casper-rw bs=1M count=4096
这将在驱动器的根目录下创建一个名为 casper-rw 的文件,大小为 4GB(或足够接近,不确定 dd 对兆字节使用二进制还是十进制表示法)。
最后一步是在这个文件中创建一个 ext2 文件系统。太棒了!
mkfs.ext2 -F /cdrom/casper-rw
现在,当你重新启动时应该启动到可正常工作且持久的实时 USB 安装。
编辑:针对我的以下评论,似乎在加载持久性文件方面没有任何变化。唯一的警告是,要使其工作,它必须位于 FAT 文件系统的根目录(即,文件系统必须使用 vfat 驱动程序加载。这意味着 FAT16 或 FAT32)。据我所知,exFAT 不起作用。
编辑 2:刚刚研究了 exFAT linux 支持。目前,exFAT 需要使用 FUSE 扩展来安装,并且不受 vfat 驱动程序支持,因此它不起作用。
编辑 3:好的,所以您确实有 casper-rw。很有趣。所以,在某个时候它没有使用持久选项启动。现在,我知道以前当你看到那个下面有键盘的人的图标时,你必须按下一个键。否则,它会使用“maybe-ubquity”内核选项启动。但是,我不确定启动画面从哪里获取了其余的启动标志(它是用 PostScript 为 gfxboot 编写的。试图破译它真是太可怕了),如果它真的有的话。因此,在启动时不按任何键可能会使你对 grub.cnf 或 syslinux.conf 所做的更改无效。
编辑 4:我现在正在检查 gfxboot-theme-ubuntu 代码,它似乎直接从 syslinux.conf 中提取所有命令行——即使它存在于根目录中。但是,如果没有按下任何键,它会将“maybe-uquity”附加到哪个 syslinux.conf 条目并执行它,我仍在尝试破译。
答案4
我刚刚在 13.04 中遇到了这个问题,并通过编辑 boot/grub/grub.cfg 并在命令行中添加持久性来修复它。
我注意到您在帖子中在 -- 之后添加了该关键字,这可能是问题所在,因为 -- 表示“此点之后没有更多内核选项”。您可以通过查看 /proc/cmdline 的内容来检查内核实际启动的选项
因此,不要使用“-- persistent”,而要尝试使用“persistent --”。
我注意到的另一件事是,当持久性起作用时(除了重启后仍然存在的东西),casper-rw 文件会被挂载,并在左侧的 unity 中显示为卷。