无法使用casper-rw永久分区启动Ubuntu Live USB闪存盘


11

因此,我已经在最后一天经历了类似的问题,并且可以首先确认这不是以下内容的重复:

解决方法:我已经使用UNetbootin和Ubuntu Startup Disk Creator创建了Ubuntu 14.04.03 Live USB闪存盘(32GB)。在这两种情况下,我都能够成功部署我的Ubuntu ISO(已通过md5sum分析确认它是完整的)。在这两种情况下,持久性都可以成功工作(使用Ubuntu Startup Disk Creator时必须手动启用它,但是UNetBootin会-persistent自动将内核参数添加到中syslinux.cfg),没有问题。

我需要一个大于4GB的持久性文件,因为我正在为现场应用工程师(FAE)创建一堆这样的闪存驱动器,并且他们需要能够在旅途中使用它们来诊断公司自定义系统的安装目前支持。如果它们由于过多的写周期而耗尽,那就很好了,如果每次旅行都需要,每个FAE都会得到一打。

此外,我们需要将磁盘上的第一个分区保留为FAT分区,以防FAE需要将文件从Windows,Mac,Linux等拖放到磁盘上,因为Windows计算机拒绝将FAT分区挂载到闪存驱动器上,除非它们是磁盘上的第一个也是唯一的FAT分区。

我已经尝试了以下文章中的步骤:

指示很明确:

  1. 使用Ubuntu创建Live USB闪存驱动器,为额外的分区留出空间。
  2. 删除casper-rw闪存驱动器上第一个FAT分区上的回送文件。
  3. 用于在FAT分区之后gparted创建一个ext2/ext3/ext4分区,并为其分配一个卷标签casper-rw

我遵循了所有建议的步骤,但是启动失败。当我尝试从新创建的闪存驱动器引导时,尽管没有看到图形化的Ubuntu启动屏幕动画但我却被引导到提示而不是Ubuntu正确引导。

dmar: IOMMU: failed to map dmar0
ACPI PCC probe failed.

BusyBox v1.12.1 (Ubuntu 1:21.0-1ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) _

我经历了Ubuntu Bug跟踪器,似乎这个问题已经被其他许多人发现:

而且它已经解决了,因此我应该期望该修复程序已经存在于我的Ubuntu 14.04.03映像中:

我还尝试过LIVE-MEDIA=/dev/sdd1在启动时通过按插入(在我的情况下)来更新内核启动参数TAB,即:

kernel /casper/vmlinuz.efi initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper LIVE-MEDIA=/dev/sdd1 -- persistent

这次,它至少找到了启动分区,并开始尝试启动Live USB磁盘,但是似乎一直失败,并带有一系列与“ casper”相关的警告。不过,我似乎无法保存这些日志,因此目前无法提供它们。我当前的默认内核参数是:

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

我该如何解决这个问题?

谢谢。


尝试使用:unetbootin
SudoSURoot

@SudoSURoot我提到我在上面的帖子中使用了此工具。
2015年

2
您在使用技嘉主板吗?它们需要UEFI / BIOS中的IOMMU设置和/或引导参数才能起作用。ubuntuforums.org/showthread.php?t=2292025
oldfred

1
我有同样的问题,我尝试在其他计算机(Intel NUC和Thinkpad)上启动。最终,我重新创建了casper-rw文件,并标记了额外的分区home-rw。这次,它似乎运作良好...
vmalep '16

1
由于14.04 home-rw似乎只将数据保存在home文件夹中,包括桌面,文档,下载,音乐等。如果它是第一个引导的永久分区,它将也保存桌面背景,但不保存无线密码等。home-rw是在完全安装中不等同于/ home。
CSCameron '16

Answers:


8

如先前的评论中所述,这与错误https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1489855有关 “安装顺序从根分区更改为永久分区(15.04),无论出于何种原因,第一个永久分区然后是根分区(16.04)。”

关于该错误,该线程中有一个最近更新的解决方法,我将在下面详细说明,因为另一个线程似乎没有那么高的知名度(当我尝试解决该问题时,它在google搜索中会降低) 。

  1. 创建分区casper-rw和OS

  2. 使用通用USB安装程序等来设置具有足以进行更改的casper-rw文件的OS分区-以后需要解决此错误的步骤(我使用2gb做到了,但是肯定需要更少的空间)

  3. 使用新的USB启动。/usr/share/initramfs-tools/scripts/casper以root用户打开进行编辑(sudo)。将函数setup_unionfs()更改为以下内容:https ://launchpadlibrarian.net/258626969/casper%20function.txt

  4. sudo update-initramfs -u (必须卸载cryptsetup才能执行此操作)

  5. 将生成的initrd.img文件复制/boot到另一个位置。

  6. 在另一个操作系统上,删除USB中的casper-rw 文件。将initrd.img复制回活动分区,并更改菜单项以使用新建的initrd.img。

下次从USB启动时,它现在应该从casper-rw 分区启动。

在寻找解决方案很长时间后,这对我来说适用于16.04!


1
请在第五步中添加更多详细信息。您说先删除然后再启动吗?
userDepth

@userDepth引导到Windows或其他操作系统(不是正在创建的新实时USB)并插入新USB。删除casper-rw文件。然后关闭并从新的USB启动,它应该自动从现在开始将更改保存到casper-rw分区。
yujia21'8

嗨,您好,我已经在16.04 64位映像上尝试过此方法,但它不起作用。.您能解释一下要卸载cryptsetup来执行此操作是什么意思吗?
kirtan403 '16

第4步给了我一些警告。.但是我没有抓住这些警告。.但失败了。.我正在重做它,以给另一个机会
kirtan403 '16

没有警告..没有用..再次卡在BusyBox屏幕上..
kirtan403 '16

4

更新了于佳的答案...感谢于佳指出正确的方向。

1)首先使用casper-rw文件,以避免casper-rw分区问题。500MB以下就足够了。

2)使用新的USB启动。用root打开/ usr / share / initramfs-tools / scripts / casper进行编辑(sudo)。将函数setup_unionfs()更改为以下内容:https ://launchpadlibrarian.net/258626969/casper%20function.txt

3)sudo update-initramfs -u(从cryptsetup发出警告,但可以放心地忽略它。)

4)将生成的“ initrd.img.4.4 .... generic”文件从/ boot复制到另一个位置。将其重命名为initrd.img。

5)在另一个操作系统上,删除USB中的casper-rw文件。

6)将initrd.img复制回活动分区,并更改菜单项以使用新构建的initrd.img。例如

label ubnentry1
menu label ^Ubuntu 16.04
kernel /casper/vmlinuz.efi
append initrd=/newly_generated_initrd.img file=/cdrom/preseed/ubuntu.seed boot=casper  quiet splash -- persistent

嗯,您的答案与Yu Jia的答案非常相似,我认为您应该建议对她的答案进行修改,而不要编写自己的答案。
edwinksl

4

mkusb 11经典版和12版本别名mkusb-dus可以自动使用所有当前的Ubuntu版本和版本以及Debian Jessie创建持久的实时驱动器。

mkusb使用casper-rw分区

mkusb也可以从Ubuntu衍生出一些Linux发行版。我没有使用最新的Linux Mint版本进行测试,但是它可以与以前的版本一起使用,因为启动结构与Ubuntu足够相似。

在此处输入图片说明

在Ubuntu和以下Ubuntu版本(Kubuntu,Lubuntu ... Xubuntu)中使用以下命令行安装mkusb。

如果运行标准Ubuntu,则需要额外的说明来获取存储库Universe。(Kubuntu,Lubuntu ... Xubuntu会自动激活存储库Universe。)

sudo add-apt-repository universe  # only for standard Ubuntu

sudo add-apt-repository ppa:mkusb/ppa  # and press Enter
sudo apt-get update
sudo apt-get install mkusb mkusb-nox usb-pack-efi

查看这些链接,

mkUSB-quick-start-manual.pdf

help.ubuntu.com/community/mkusb

help.ubuntu.com/community/mkusb/persistent

help.ubuntu.com/community/mkusb/install-to-debian

下载和使用mkusb-installer可以与其他几个Linux发行版一起使用。使用以下链接(和方法)之一,

help.ubuntu.com/community/mkusb/gui#from_phillw.net

help.ubuntu.com/community/mkusb/gui/tarball


1
+1 mkusb仅有一个复选框可以使USB活动磁盘持久化,即重新启动后仍在今天的会话中设置的内容。
WinEunuuchs2Unix

是的,mkusb有效。我尝试使用Ubuntu 17.10,但使用www.pendrivelinux.com取得了超过4 GB的持久性存储(在获取更新等(至少在更新过程中至少用于临时存储)时确实需要),但并没有取得太大的成功。在16 GB USB闪存驱动器上,/ cow约为10.5 GB(casper-rw 分区,不是文件),并且在更新和其他使用后,当前的使用率为36%。
彼得·莫滕森

2

创建pendrive并启动它没有任何问题。是否按以下方式创建了perndrive?

该过程涉及3个步骤:

  1. 对pendrive进行分区。
  2. 使用Universal USB Installer制作可启动的Pendrive 。
  3. 将标志添加到UUI分区并完成分区过程。

第1步:

打开GParted并对pendrive进行如下分区-

在此处输入图片说明

未分配的分区将在稍后的步骤3中添加,sdc2用于Ubuntu,而sdc3用于持久性。由于这是一个8GB的笔式驱动器,因此我使用3.32GB作为永久性驱动器,但可以使用任何大小的磁盘。将此分区标记为casper-rw

第2步:

将Pendrive插入Windows机器中。将检测到第二个驱动器(即标签OS)。使用通用USB安装程序在该驱动器中安装Ubuntu。

在此处输入图片说明

设置一个小的持久文件,我用了204MB。大小无关紧要,因为无论如何我们将在第3步中将其删除。按创建

第三步:

将Pendrive重新插入Ubuntu系统,并按如下所示更改分区表-

在此处输入图片说明

现在,对于最后一部分,右键单击第二个分区并选择Manage Flags。检查Bootlba


现在,您将拥有一个Pendrive,其第一个分区将在Windows中被检测到,并且它是一个大于4GB的永久驱动器。

在此处输入图片说明

在此处输入图片说明


2
永久分区在32位安装的SDC / Unetboot中可以正常工作,但在14.04及更高版本的64位安装中不能正常工作。64位grub2 / iso(多引导类型)可与永久casper-rw分区一起安装。
CSCameron'2


2

我刚刚从这套非常有用的答案中获得了很多帮助,从而实现了这一目标。

作为参考,我使用我以前使用SystemBack构建的自定义ISO映像设置了16 GB Kingston Data Traveler。

我正在使用的操作系统是Lubuntu,我的自定义ISO更改了很多软件包(我删除了很多gumpf并安装了一些必要的实用程序)。

我首先使用araghuteja的非常有用的说明集,然后将设备设置为三个分区:

  • Windows可访问的FAT32分区(/dev/sdc1)为4 GB
  • 操作系统2 GB(/dev/sdc2
  • 其余的(小于8 GB,但大约是8 GB)作为casper-rw分区(/dev/sdc3

不幸的是,这还行不通,因为仅从操作系统分区中删除casper-rw 文件还不够。

真正的帮助来自Yu Jia Cheong和StarBloom,他们在其中解释了如何重置GRUB引导加载器以“看到” casper-rw 分区

我确实需要做一些细节,以使于佳的指示更加清晰。(请注意,这些说明可能并不完全适用于默认的Ubuntu ISO映像,因为我认为某些文件位置可能会被Systemback配置更改)。

具体来说-在第5部分中,由

sudo update-initramfs -u

被命名为initrd.img-4.4.0-47-generic

所以-我将此文件复制到我的'casper-rw'分区,但是随后我意识到我的GRUB引导菜单看起来是引用/casper/initrd.gz(在四个位置),它位于UUI分区上的/ boot / grub内。

所以-我将initrd.img-4.4.0-47-generic重命名为initrd.gz,并替换了UUI / boot / grub / casper /中的文件(显然以防万一,保留旧文件的副本!)。

使用该特定的USB记忆棒启动,并df -h在“计算机”根文件夹中使用,我得到以下信息:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             16G  4.0K   16G   1% /dev
tmpfs           3.2G  1.6M  3.2G   1% /run
/dev/sdb1       2.0G  1.3G  729M  65% /cdrom
/dev/loop0      1.3G  1.3G     0 100% /rofs
/cow            8.2G  118M  7.7G   2% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
tmpfs            16G  4.0K   16G   1% /tmp
none            5.0M     0  5.0M   0% /run/lock
none             16G     0   16G   0% /run/shm
none            100M   16K  100M   1% /run/user
/dev/sdb3       4.0G  4.0K  4.0G   1% /media/silver/DATA
/dev/sdb2       8.2G  118M  7.7G   2% /media/silver/casper-rw

我假设/ cow是casper实时分区,并且显示正确的大小。

我发现有趣的是,当我使用机器时,实际上可以将casper-rw分区视为/ dev / sdb2-这是正确的吗?

我也不相信3路分区。在Windows(10)中,我只能看到OS分区,而不能看到数据分区。

非常感谢所有人,希望我的经历对别人有所帮助!(注意-我对Stack Exchange的使用还很陌生,无法发表评论-因此我的回答是新的,而不是对Yu Jia的评论)。

更新资料

我再次尝试创建另一个“笔式计算机”,并且我意识到,ISO映像越大,运行UUInstaller时需要为casper-rw 文件创建的空间就越大。

我最新的ISO映像大约是3.8 GB(这是自定义的Ubuntu 16.04),经过3次尝试,我必须创建5 GB的初始OS分区并在安装程序中使用1 GB的持久性设置-否则更新时会耗尽存储空间initramfs函数。

注意-我最终决定将OS分区设置为8 GB,以确保有足够的空间!


1

加载初始RAM磁盘后,启动过程似乎中断了。这是由于无法挂载根文件系统(filesystem.squashfs)。由于在编辑分区之前一切正常,因此可能是以下一项或多项失败的原因。

  • 更改UUID。
  • 损坏的文件(filesystem.squashfs,vmlinuz)
  • 文件系统损坏

尝试:

  • 格式化引导分区(使用ext3)(现在您有三个分区,如前所述)。
  • 使用带有持久性选项的UNetbootin重新创建实时系统。
  • 删除持久性文件(以便它使用持久性分区)

1

我一直对Lubuntu 14.04.3 i386 ISO映像有类似的问题,并放弃了。然后,我尝试了Lubuntu 15.04 AMD64 ISO映像(由于启动时发生错误,我早些时候放弃了15.04,但事实证明这只是一个小问题*)。

casper-rw分区可以在更高版本的系统上正常工作(遵循通常的说明),因此看来问题与进程无关,而与特定于14.04 ISO映像的问题有关。

我以前已经成功安装了带有casper-rw永久分区的Lubuntu 14.04系统,所以我知道原来的14.04可以工作。那么问题可能出在14.04.3上吗?

*如果您确实使用15.04,并在启动时遇到问题“配置文件中缺少参数...”,则键入“ live”并输入。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.