从USB Live Session引导时如何绕过“尝试/安装”屏幕?(不安装在USB中)


35

已经多次询问了这个问题(我在这里这里这里找到了它),但是基本上每个人都只是建议对USB记忆棒进行完整安装。但是出于多种原因,我确实需要它保持为LIVE会话,而不是“ USB上的完整安装”(最重要的是,使用Live会话,我可以使用桌面图标轻松安装Ubuntu)

因此,我跳过欢迎屏幕(并自动选择“尝试Ubuntu”选项)的限制是:

  • 它实际上必须是Ubuntu Live会话(或尽可能接近默认会话)。相同的软件选择(实时会话中存在gparted,例如,没有gimp),用户(名称和ID),行为(没有登录屏幕,没有密码sudo,仅举几例),没有GRUB等。这排除了USB上的Ubuntu完整安装。

  • 它必须能够在计算机上安装Ubuntu(而完整安装则需要ISO文件,附加的USB记忆棒以及Startup Disk Creator的麻烦)

  • 如果可能的话,速度要与“基于文本的启动器”(在内核加载后立即按一个键时所拥有的启动器)一样快

  • 它必须是完全自动的,从启动到桌面都无人值守。

  • 选择与默认语言不同的语言。这可能是一个艰难的选择(实际上,必须这样做,因为引导本身应完全无人值守)。但是最好是容易更改的(如在编辑配置文件然后重新启动时那样“轻松”)

可能吗?

到目前为止,我已经排除的建议(最佳)解决方案是:

  • 在USB记忆棒中安装Ubuntu (出于上述所有原因)

  • 删除Ubiquity软件包(它也删除了从该USB安装系统的功能)

  • Ubuntu Customization Kit(ubk):一些限制和警告,甚至在回购中也没有

  • Remastersys / LiLi:与完全直接USB安装相同,仅是定制的。

理想的解决方案应该是“使用启动磁盘创建器创建USB故障,然后将其打开并删除/编辑/添加xxx,yyy,zzz”。


我用建议的内容替换了syslinux.cfg中USB上的代码,但仍然得到提示。(原始行:vesamenu.c32提示0超时50 ui gfxboot bootlogo)是否可以对txt.cfg(下)进行某些操作:标签持久菜单标签^ Persistent Mode内核/ casper / vmlinuz append bootkbd = us console- setup / layoutcode = zh_CN控制台设置/ variantcode = nodeadkeys区域设置= us_us持久无提示cdrom-detect / try-usb = true file = / cdrom / preseed / ubuntu.seed boot = casper initrd = / casper / initrd.lz启动-标签实时菜单标签^实时模式内核/ casper / vmlinuz附加
user142859 2013年

Answers:


41

本指南是为Ubuntu(Gnome)设计的。它也适用于Kubuntu(KDE),但有一些例外

我已经能够使Live CD引导直接进入Live会话,而无需超时或精美菜单,也可以选择安装语言包。

实时USB(16.04)

  1. 挂载安装了Ubuntu的USB
  2. 备份文件syslinux/syslinux.cfg。我们将对其进行修改,以便在出现问题时将其替换回原处。
  3. 在syslinux目录下打开以下文件:syslinux.cfgtxt.cfg
  4. 删除(或评论)中的所有内容syslinux.cfg
  5. txt.cfg文件具有默认的GRUB菜单项。将现场直播复制到syslinux.cfg

    default live
    label live
    menu label ^Try Ubuntu without installing
    kernel /casper/vmlinuz.efi
    append file=/cdrom/preseed/ubuntu.seed boot=casper cdrom-detect/try-usb=true persistent noprompt floppy.allowed_drive_mask=0 ignore_uuid initrd=/casper/initrd.lz quiet splash --
    
  6. 您可以在附加行中添加设备所需的任何特定内核参数。

  7. 保存isolinux.cfg并使用USB启动系统。现在它将直接启动到桌面。

实时USB(13.10)

  1. 挂载安装了Ubuntu的USB
  2. 备份文件isolinux/isolinux.cfg。我们将对其进行修改,以便在出现问题时将其替换回原处。
  3. 在isolinux目录下打开以下文件:isolinux.cfgtxt.cfg
  4. 删除中的所有内容isolinux.cfg
  5. txt.cfg文件具有默认的GRUB菜单项。将现场直播复制到isolinux.cfg

    default live
    label live
    menu label ^Try Ubuntu without installing
    kernel /casper/vmlinuz.efi
    append file=/cdrom/preseed/ubuntu.seed boot=casper cdrom-detect/try-usb=true persistent noprompt floppy.allowed_drive_mask=0 ignore_uuid initrd=/casper/initrd.lz quiet splash --
    
  6. 您可以在附加行中添加设备所需的任何特定内核参数。

  7. 保存isolinux.cfg并使用USB启动系统。现在它将直接启动到桌面。

[ 来源 ]

实时USB(11.04)

  1. 转到Live USB的根文件夹
  2. 输入syslinux目录
  3. 使syslinux.cfg文件可写
  4. 将文件内容替换为syslinux.cfg

    default live
    label live
      say Booting an Ubuntu Live session...
      kernel /casper/vmlinuz
      append  file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash noprompt --
    
  5. 可选:本地化系统(请参见下文)

现场CD

  1. 如果您的CD驱动器中有Live CD,请安装它。否则,如果有可用的ISO文件,请/media/cdrom通过在终端中运行下一个命令将其挂载(相应地替换.iso文件名):

    sudo mount -o loop,ro ubuntu-11.04-desktop-amd64.iso /media/cdrom
    
  2. 创建一个临时目录,其中可以存储CD内容,例如~/live-cdmkdir ~/live-cd
  3. 将CD的内容复制到文件夹~/live-cd/isocp -r /media/cdrom ~/live-cd/iso
  4. 由于不再需要Live CD,因此可以将其卸载(sudo umount /media/cdrom
  5. 打开~/live-cd/iso文件夹(cd ~/live-cd/iso
  6. 输入isolinux目录(cd isolinux
  7. 使isolinux.cfg文件可写(chmod u+w isolinux.cfg
  8. 将文件内容替换为isolinux.cfg

    default live
    label live
      say Booting an Ubuntu Live session...
      kernel /casper/vmlinuz
      append  file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash --
    
  9. 可选:本地化系统(请参见下文)
  10. 打开一个终端并运行:

    cd ~/live-cd
    chmod u+w iso/isolinux/isolinux.bin
    mkisofs -r -V "Ubuntu Live session" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ubuntu-11.04-live-amd64.iso iso
    
  11. 新的iso将在上提供~/live-cd/ubuntu-11.04-live-amd64.iso。为了节省空间,~/live-cd/iso可以删除目录。(rm -rf ~/live-cd/iso
  12. 现在,ubuntu-11.04-live-amd64.iso如果需要,将文件刻录到CD上。

本地化Ubuntu(翻译)

如果您想在语言英语,西班牙语,葡萄牙语,科萨或简体中国的系统,你刚才添加的locale=启动选项有enesptxhzhappend线,如下所示:

... quiet splash locale=pt --

否则,如果您不想修改包含根文件系统(filesystem.squashfs)的文件并且不介意乱砍,请继续阅读。

打开终端并导航到~/live-cd/iso目录,并将来自http://pastebin.com/VTdt9WFZ的代码放入文件中(将其命名为install-locale)并运行它。

该脚本安装filesystem.squashfs,从中检索语言包的版本信息,下载包并将它们放在目录中locale-hack。接下来,创建一个脚本,该脚本在启动时安装语言包。为使此工作有效,脚本还修改了syslinux.cfgisolinux.cfg文件以应用这些更改。

系统会要求您输入语言环境,输入诸如nlde。脚本不太聪明,无法理解诸如Dutch或的东西German。之后,可以删除文件

应该执行的终端命令:

cd ~/live-cd/iso
wget http://pastebin.com/raw.php?i=VTdt9WFZ -O install-locale
bash install-locale
rm install-locale

请注意,添加语言包可能导致生成的.iso文件大于700MB,而CD上不适合该文件。但是,对于虚拟机来说,就足够了。这种hack的副作用是,Plymouth无法正常工作(即,您无法获得漂亮的启动屏幕),但是至少在登录时会翻译系统。否则,您必须language-pack-gnome-*手动安装。

参考文献


为此+1!有效!(使用实时USB方法)。我也将考虑添加noprompt cdrom-detect/try-usb=true到该append行中,因为那是它的方式txt.cfg。您知道这些附加参数做什么吗?另外,是否可以改进解决方案以包含语言?
MestreLion 2011年

noprompt在不要求取出CD的情况下关闭系统。我已将其添加到Live USB线路中,因为它对USB媒体没有意义。我不知道该怎么cdrom-detect/try-usb=true做。由于大小,默认情况下,Live CD上不包括所有语言包。要设置其他语言环境(例如NL),请locale=nl_NL在该append行上传递该选项。这将设置语言环境而不是Gnome的语言,因为该软件包在Live CD上根本不可用。
Lekensteyn 2011年

@MestreLion:更新了针对本地化环境的hack。
Lekensteyn 2011年

@Lekensteyn:这些软件包在Live CD上可用,因为当您选择其他语言时,Ubuntu将以该语言启动Live会话。虐待尝试您关于的建议locale=pt_BR。也许就这么多。
MestreLion 2011年

@MestreLion:并非如此,我已经使用“ locale=nl尝试/安装”中的语言选择菜单和两者进行了测试。在这两种情况下,尽管locale命令输出,我都得到了英语布局nl_NL.UTF-8
Lekensteyn 2011年

1

对于启动磁盘创建程序和UNetbootin安装而言,以上方法非常有用。如果您使用的是永久性闪存驱动器,则需要添加“永久性”一词,因此:

default live
label live
  say Booting an Ubuntu Live session...
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/ubuntu.seed boot=casper persistent initrd=/casper/initrd.lz quiet splash noprompt --

对于64位系统,代码略有不同

default live
label live
  say Booting an Ubuntu Live session...
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/ubuntu.seed boot=casper persistent initrd=/casper/initrd.lz quiet splash noprompt --

这与Lekensteyn的回答与他11年6月20日8:08的评论相结合有何不同?
MestreLion

不确定,从11年6月20日8:08可以在哪里找到他的评论?
CSCameron

这是他在上面的回答中的倒数第三条评论
MestreLion

自从我发帖以来,原始答案已被编辑,Lekensteyn的原始答案没有提到“持久”或64位所需的“ .efi”。
CSCameron

1

在14.04或更早版本中,Ubiquity使用暴发户来启动。您可以通过修改禁用它/etc/init/ubiquity.conf

1)如果您不使用Live安装本身,请先安装casper-rw:

# Mount the usb_drive manually if nautilus has not done it for you
# Change sdb1 to the proper location of your usb drive, find it using sudo blkid
sudo mkdir /media/$USER/usb_drive
sudo mount /dev/sdb1 /media/$USER/usb_drive
# Create a mount point for the read-write file system and mount via loopback
sudo mkdir /media/$USER/casper-rw
sudo mount -o loop /media/$USER/usb_drive/casper_rw /media/$USER/casper-rw
cd /media/$USER/casper-rw

2)etc/init/ubiquity.conf在实时安装中进行编辑,并注释掉以下几行:

#start on (starting gdm
#          or starting kdm
#          or starting xdm
#          or starting lxdm
#          or starting lightdm)

如果要重新控制磁盘,则可以ubiquity.conf在squashfs系统中编辑主磁盘。重新启动后,泛在状态将完全消失。

3)卸下驱动器

sudo umount /media/$USER/*

0

您不想要remastersys的任何原因?您可以安装操作系统,使用remastersys创建一个iso,提取squashfs文件,然后替换库存中的iso,(或预制的usb文件夹)

我经常这样做


1
使用remastersys,我将获得完整安装,而不是实时会话。阅读我的第一个约束:它实际上必须是Ubuntu Live会话(或尽可能接近默认会话)。选择相同的软件(在实时会话中存在gparted,例如不存在gimp),用户(名称和ID),行为(没有登录屏幕,没有sudo密码,仅举几例),没有GRUB等。在USB上进行Ubuntu完整安装。
MestreLion
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.