持久文件不适用于 13.04

持久文件不适用于 13.04

我成功地在 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 是问题所在。以下是启动顺序;

  1. 引导菜单
  2. 选择 EFI USB
  3. 然后 Grub 有 4 个选择(我相信),它们是;
  4. 尝试 Ubuntu(无需安装)
  5. 安装 Ubuntu
  6. OEM 安装
  7. 检查光盘

当然,我选择“尝试”。我认为这才是真正的问题。重启后创建用户的努力失败。似乎没有任何内容被保存/写入 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 中显示为卷。

相关内容