Как обойти экран «Попробуй / Установи» при загрузке с USB Live Session? (без установки в USB)

35

Об этом уже спрашивали несколько раз (я нашел это здесь , здесь и здесь ), но в основном все просто рекомендуют выполнить полную установку на флешку. Но мне нужно, чтобы он оставался как сеанс LIVE, а не как «полная установка на USB», по ряду причин (наиболее важной из них является то, что с помощью сеанса Live я могу легко установить Ubuntu с помощью значка на рабочем столе)

Итак, мои ограничения для пропуска экрана приветствия (и автоматического выбора опции «Попробовать Ubuntu»):

  • На самом деле это должен быть сеанс Ubuntu Live (или как можно ближе к стандартному). Одинаковый выбор программного обеспечения (gparted присутствует в живых сеансах, например, gimp нет), пользователь (имя и идентификатор), поведение (без экрана входа в систему, без пароля sudo, чтобы назвать несколько), без GRUB и т. Д. Это исключает полная установка Ubuntu на USB.

  • Он должен быть в состоянии установить Ubuntu на компьютер (в то время как для полной установки требуется файл ISO, дополнительная флешка USB и хлопоты по Startup Disk Creator)

  • Если возможно, быть настолько же быстрым, как «текстовый лаунчер» (тот, который вы используете при нажатии клавиши сразу после загрузки ядра)

  • Он должен быть полностью автоматическим, без присмотра от загрузки к рабочему столу.

  • Выберите язык, отличный от языка по умолчанию. Это может быть жесткий выбор (на самом деле, так и должно быть, поскольку сама загрузка должна быть полностью без присмотра). Но желательно быть легко измененным («легко», как при редактировании файла конфигурации и перезагрузке)

Является ли это возможным?

Предлагаемые (отличные) решения, которые я исключил на данный момент:

  • Установка Ubuntu на USB-накопитель (по всем вышеупомянутым причинам)

  • Удалить Ubiquityпакет (также удаляет возможность установки системы с этого USB)

  • Ubuntu Customization Kit (ubk): несколько ограничений и предостережений , и его нет даже в репозиториях

  • Remastersys / LiLi: то же самое, что и полная прямая установка через USB, только по индивидуальному заказу.

Идеальным решением было бы что-то вроде «создать USB-накопитель с помощью Startup Disk Creator, затем открыть его и удалить / отредактировать / добавить файл (-ы) xxx, yyy, zzz»

MestreLion
источник
Я заменил код на USB, который у меня был в syslinux.cfg, на то, что было предложено, но я все еще получаю подсказку. (Исходные строки: vesamenu.c32, приглашение 0, тайм-аут 50 пользовательского интерфейса gfxboot bootlogo) Возможно ли, что я должен что-то сделать с txt.cfg (ниже): label постоянная метка меню ^ Ядро постоянного режима / casper / vmlinuz добавьте bootkbd = us console- setup / layoutcode = en_US console-setup / optioncode = nodeadkeys locale = us_us постоянный noprompt cdrom-detect / try-usb = истинный файл = / cdrom / preseed / ubuntu.seed boot = casper initrd = / casper / initrd.lz splash - Метка живого меню Метка ^ Ядро в живом режиме / casper / vmlinuz append
user142859

Ответы:

41

Это руководство было сделано для Ubuntu (Gnome). Это работает и для Kubuntu (KDE), за некоторыми исключениями

Я смог загрузить Live CD прямо в сеанс Live без таймаута или необычного меню, возможно с установленным языковым пакетом.

Live USB (16.04)

  1. Смонтируйте USB с установленной на нем Ubuntu
  2. Сделайте резервную копию файла syslinux/syslinux.cfg. Мы изменим его, поэтому нам нужно заменить его обратно, если что-то пойдет не так.
  3. Откройте следующие файлы в каталоге syslinux: syslinux.cfgи txt.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. Смонтируйте USB с установленной на нем Ubuntu
  2. Сделайте резервную копию файла isolinux/isolinux.cfg. Мы изменим его, поэтому нам нужно заменить его обратно, если что-то пойдет не так.
  3. Откройте следующие файлы в каталоге isolinux: isolinux.cfgи txt.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. Теперь он загрузится прямо на рабочий стол.

[ источник ]

Live 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. Необязательно: локализуйте систему (см. Ниже)

Live 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-cd( mkdir ~/live-cd)
  3. Скопируйте содержимое компакт-диска в папку ~/live-cd/iso( cp -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 (переводы)

Если вы хотите, чтобы система на языках английском, испанском, португальском, Xhosa или упрощенный китайский, вы просто добавить locale=опцию загрузки с en, es, pt, xhили zhк appendлинии , как в:

... quiet splash locale=pt --

В противном случае, если вы не хотите изменять файл, содержащий корневую файловую систему (filesystem.squashfs ), и не возражаете против взлома, продолжайте чтение.

Откройте терминал и перейдите в ~/live-cd/isoкаталог и поместите код из http://pastebin.com/VTdt9WFZ в файл (назовите егоinstall-locale ) и запустите его.

Этот скрипт монтирует filesystem.squashfs, получает информацию о версии языковых пакетов из него, загружает пакеты и помещает их в каталог locale-hack. Затем создается скрипт, который устанавливает языковые пакеты во время загрузки. Чтобы это работало, скрипт также изменяет файл syslinux.cfgили, isolinux.cfgчтобы применить эти изменения.

Вам будет предложено указать локаль, введите что-то вроде nlили de. Сценарий не настолько умен, чтобы понимать такие вещи, как Dutchили German. После этого файл может быть удален

Команды терминала, которые должны быть выполнены:

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

Обратите внимание, что добавление языкового пакета может привести к тому, что сгенерированный .isoфайл будет иметь размер более 700 МБ, который не помещается на компакт-диске. Однако для виртуальных машин этого достаточно. У этого взлома есть побочный эффект, что Plymouth не работает (то есть вы не получаете причудливый загрузочный экран), но по крайней мере система переводится при входе в систему. В противном случае вам пришлось устанавливать language-pack-gnome-*вручную.

Ссылки

Lekensteyn
источник
+1 за это! Это сработало! (используя метод Live USB). Я также рассмотрю добавление noprompt cdrom-detect/try-usb=trueв appendстроку, так как это так, как оно есть txt.cfg. Вы знаете, что делают эти дополнительные параметры? Кроме того, можно ли улучшить решение, включив в него язык?
MestreLion
nopromptвыключает систему, не прося удалить компакт-диск. Я добавил это к линии Live USB, потому что это не имеет смысла с USB-носителями. Я не знаю, что cdrom-detect/try-usb=trueделает. Все языковые пакеты по умолчанию не включены в Live CD из-за его размера. Чтобы установить другую локаль (например, NL), передайте locale=nl_NLопцию в appendстроке. Это установит локаль, но не язык для Gnome, потому что пакет просто недоступен на Live CD.
Лекенштейн
@MestreLion: обновлен хаком для локализованной среды.
Лекенштейн
@Lekensteyn: пакеты доступны на Live CD, потому что когда вы выбираете другой язык, Ubuntu запускает Live сессию на этом языке. Я попробую ваше предложение о locale=pt_BR. Может быть, это все, что нужно.
MestreLion
@MestreLion: не совсем, я протестировал его с обоими locale=nlи меню выбора языка в Try / Install. В обоих случаях я получил английскую раскладку, хотя localeкоманда выводит nl_NL.UTF-8.
Лекенштейн
1

Вышесказанное прекрасно работает как для Startup Disk Creator, так и для 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 --
CSCameron
источник
Отличается ли это от ответа Лекенштейна в сочетании с его комментарием от 20 июня 2011 года в 8:08?
MestreLion
Не уверен, где я могу найти его комментарий от 20 июня 2011 года в 8:08?
CSCameron
Это третий из последних комментариев в его ответе выше
MestreLion
Оригинальный ответ был отредактирован со времени моего поста, в первоначальном ответе Лекенштейна не упоминалось «постоянный» или «.efi», требуемый для 64-битной версии.
CSCameron
1

В 14.04 и, возможно, раньше, Ubiquity использует upstart для запуска. Вы можете отключить это, изменив /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в рамках установки Live и закомментируйте следующие строки:

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

Если вы ремастерируете диск, вы можете просто отредактировать мастер ubiquity.confв системе squashfs. При повторном запуске Ubiquity полностью исчезнет с вашего пути.

3) Размонтировать диски

sudo umount /media/$USER/*
user166879
источник
0

По какой причине ты не хотел remastersys? Вы можете установить ОС, сделать iso с помощью remastersys, извлечь файл squashfs и заменить его на исходном iso (или предварительно созданной папке usb).

Я делаю это часто

Дез
источник
1
Используя remastersys, я закончил бы полной установкой, а не сеансом Live. Прочтите мое первое ограничение: это должен быть сеанс Ubuntu Live (или максимально близкий к настройке по умолчанию). Тот же выбор программного обеспечения (gparted присутствует в живых сеансах, например, gimp нет), пользователь (имя и ID), поведение (без экрана входа в систему, без пароля для sudo, если не назвать несколько), без GRUB и т. Д. Это правила полная установка Ubuntu на USB.
MestreLion