Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как создать Live-USB из поd Linux без использования всего объёма диска  (Прочитано 1505 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Shaman207

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
  • Ubuntu 18.04 x64, 20.04 x64
    • Просмотр профиля
Подскажите пожалуйста как создать загрузочный диск из под Ubuntu, чтобы осталась возможность использовать остальной объем диска.
Поясню встроенная в Ubuntu софтина просто копирует образ командой dd в результате получаем вот это



Без возможности использовать диск

А надо во так:

Т.е. с этого винчестера можно установить Windows и при этом разделы остаются перезаписываемые. Я не знаю как это сделано (уже так достался) да и сделано скорее всего из под винды, а мне надо под линуксом сделать загрузочный диск с возможностью установки и чтобы разделы были презаписываемые.
Рубить сучья работа

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6904
    • Просмотр профиля
Цитировать
создать загрузочный диск из под Ubuntu, чтобы осталась возможность использовать остальной объем диска
Я делаю так.
Здесь можно взять более новую версию кода для grub.cfg.

Оффлайн Shaman207

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
  • Ubuntu 18.04 x64, 20.04 x64
    • Просмотр профиля
Благодарю за подсказку сделал по вашему методу, но получил затык во время загрузки:

(initramfs) unable to find a live medium containing a live file system

Поиск в интернете пока ничего путного не дал
Пока настроил загрузку напрямую с образа ISO для моих целей этого более чем достаточно, но разобраться всже хочется.
Не могли бы вы подсказать где ошибка?
Вот мой grub.cfg
if loadfont /boot/grub/font/unicode.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

set timeout=5

menuentry "Ubuntu 18.04 iso" {
set isofile="/opt/ubuntu-18.04.2-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd
}

menuentry 'Ubuntu 18.04' {
 src='/opt/ub1804'
 key="$key boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
 root='x'
 insmod part_gpt
 search -f ${src}/casper/vmlinuz -n -s
 if [ $root = x ]
  then msg="$src not exist!"; avload='configfile'; src="${prefix}/grub.cfg"
  else msg="Load $src from $root"; avload='linux'; avinit="initrd ${src}/casper/initrd"
   if [ -e "${src}/casper-rw" ]; then key="persistent persistent-path=$src $key"; fi
   src="${src}/casper/vmlinuz ${key}"
 fi
 echo "$msg"; sleep 4
 ${avload} ${src}
 ${avinit}
}   
Рубить сучья работа

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6904
    • Просмотр профиля
Цитировать
Не могли бы вы подсказать где ошибка?
Ваш код выглядит просто. Но в силу простоты и возникают ошибки. Причем плавающие.
loopback loop (hd0,1)$isofileВозможное место для ошибки. Если подключены более одного устройтсва, то не всегда первый диск может оказаться первым.
Тоже самое происходит во время установки системы при выборе места установки загрузчика. По умолчанию устанавливается на sda, но не всегда на месте sda оказывается первый диск (устройство).
Я, когда столкнулся с этим, специально тестироавал. Подключены: харддиск и флешка. На моем ноуте они меняются местами почти каждый раз. То флешка оказывается sda, то харддиск.
initrd (loop)/casper/initrdВы точно знаете, что в этом образе файл тазывается initrd? Последние несколько лет был initrd.lz. Настолько привык, что не обращал внимания.
И вот последние год-два все чаще встречается initrd. Приходится смотреть в каждом конкретном образе.
 Чтобы упростить загрузку из исо-образа придумали технологию "loopback bootable". Суть ее в том, что образе есть файл /boot/grub/looback.cfg. В нем прописан конфиг загрузчика для загрузки из исо-образа.
Мой код выглядит сложнее. Но у него нет приведенных недостатков.
1. Ищет файл образа на всех разделах, где найдет - оттуда звгрузит.
2. Если не найдет вернется в меню.
3. Выводит сообщение, где нашел.
4. Ищет в образе loopback.cfg. Если находит, то выводит меню из этого файла. Если не находит, то приисходит обычная загрузка из исо-образа.
5. Переменные (название образа и параметры ядра) находятся в начале кода. При необходимости изменения не нужно искать по всему коду. Снижается вероятность ошибок при модификации.
 Второй пункт меню, в приведенном вами конфиге, для загрузки *бунту из "набора файлов". Я считаю, что это самый удобный вариант, в силу своей простоты, гибкости и широких возможностей.
Для этого нужно три файла (vmlinuz, initrd.lz, filesystem.squashfs) поместить в каталог /opt/ub1804/casper.
Вот только, когда копировали вы допустили ошибку. Нет пареметра "ignore_uuid". Я сам на нем обжигался несколько раз. Поэтому в обновленной версии кода внес его в переменную key непосредственно в пункте меню.
Строка должна выглядеть так:
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"Я не зря указал ссылку, где находится обновленный код.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
liveusb типа fat32.
boot
initrd.lz
ubuntu.iso

boot/grub/grub.cfg
set timeout=1
set default=0
menuentry "Ubuntu XX.XX Desktop ISO" {
 loopback loop /ubuntu.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso noeject noprompt splash --
 initrd /initrd.lz
}
Wars ~.o

Оффлайн Shaman207

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
  • Ubuntu 18.04 x64, 20.04 x64
    • Просмотр профиля
Ваш код выглядит просто. Но в силу простоты и возникают ошибки. Причем плавающие.
Благодарю, я не совсем корректно задал вопрос (время поджимало) начнем с того, что этот конфиг для меня вообще тёмный лес, я не понимаю больше половины из написанного (в основном понятны только пути и названия файлов. Поэтому я просто скомпилировал его методом тыка. Шапку взял с образа
(Нажмите, чтобы показать/скрыть)
Кусок про загрузку с образа диска из интернета (мол скопируйте вставьте и заработает).
(Нажмите, чтобы показать/скрыть)
Этот из вашего:
(Нажмите, чтобы показать/скрыть)
Естественно заменив пути на свои.
Часть кода с загрузкой из образа я добавил в самом конце когда не получилось с вашим поэтому строка
loopback loop (hd0,1)$isofileне влияет на появление ошибки
(initramfs) unable to find a live medium containing a live file system

Если я правильно понял то в вашем коде всё что находиться ниже строки (включительно)
menuentry 'Memtest' {мне не нужно т.к. это пункты загрузки теста памяти, виктории и т.д.
Поэтому ваш код у меня принимал вид:
(Нажмите, чтобы показать/скрыть)

С таким конфигом результат был такой:
(Нажмите, чтобы показать/скрыть)
И что делать дальше не понятно.
loopback loop (hd0,1)$isofileВозможное место для ошибки. Если подключены более одного устройства, то не всегда первый диск может оказаться первым.
Если я правильно понимаю то (hd0,1) означает первый раздел первого диска и если на нем не найдётся образа то он и не загрузиться.
Вопрос: как написать, чтобы он искал на всех дисках?
initrd (loop)/casper/initrdВы точно знаете, что в этом образе файл тазывается initrd? Последние несколько лет был initrd.lz.
Да я посмотрел при копировании файлов.
 
Чтобы упростить загрузку из исо-образа придумали технологию "loopback bootable". Суть ее в том, что образе есть файл /boot/grub/looback.cfg. В нем прописан конфиг загрузчика для загрузки из исо-образа.
С этим надо ещё разбираться.

Вот только, когда копировали вы допустили ошибку. Нет пареметра "ignore_uuid". Я сам на нем обжигался несколько раз. Поэтому в обновленной версии кода внес его в переменную key непосредственно в пункте меню.
Строка должна выглядеть так:
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Т.е. в этом куске:
(Нажмите, чтобы показать/скрыть)
я в место
key="$key boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"должен написать
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Я не зря указал ссылку, где находится обновленный код.
Эх, мне бы с ранешним разобраться, а потом уже и новый пытать.

Пользователь добавил сообщение 16 Марта 2019, 23:14:55:
И что делать дальше не понятно.
loopback loop (hd0,1)$isofileВозможное место для ошибки. Если подключены более одного устройтсва, то не всегда первый диск может оказаться первым.
Если я правильно понимаю то (hd0,1) означает первый раздел первого диска и если на нем не найдётся образа то он и не загрузиться.
Вопрос: как написать, чтобы он искал на всех дисках?
initrd (loop)/casper/initrdВы точно знаете, что в этом образе файл тазывается initrd? Последние несколько лет был initrd.lz.
Да я посмотрел при копировании файлов.
 
Чтобы упростить загрузку из исо-образа придумали технологию "loopback bootable". Суть ее в том, что образе есть файл /boot/grub/looback.cfg. В нем прописан конфиг загрузчика для загрузки из исо-образа.
С этим надо ещё разбираться.

Вот только, когда копировали вы допустили ошибку. Нет пареметра "ignore_uuid". Я сам на нем обжигался несколько раз. Поэтому в обновленной версии кода внес его в переменную key непосредственно в пункте меню.
Строка должна выглядеть так:
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Т.е. в этом куске:
(Нажмите, чтобы показать/скрыть)
я в место
key="$key boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"должен написать
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Я не зря указал ссылку, где находится обновленный код.
Эх, мне бы с ранешним разобраться, а потом уже и новый пытать.

Пользователь добавил сообщение 16 Марта 2019, 23:15:31:
И что делать дальше не понятно.
loopback loop (hd0,1)$isofileВозможное место для ошибки. Если подключены более одного устройтсва, то не всегда первый диск может оказаться первым.
Если я правильно понимаю то (hd0,1) означает первый раздел первого диска и если на нем не найдётся образа то он и не загрузиться.
Вопрос: как написать, чтобы он искал на всех дисках?
initrd (loop)/casper/initrdВы точно знаете, что в этом образе файл тазывается initrd? Последние несколько лет был initrd.lz.
Да я посмотрел при копировании файлов.
 
Чтобы упростить загрузку из исо-образа придумали технологию "loopback bootable". Суть ее в том, что образе есть файл /boot/grub/looback.cfg. В нем прописан конфиг загрузчика для загрузки из исо-образа.
С этим надо ещё разбираться.

Вот только, когда копировали вы допустили ошибку. Нет пареметра "ignore_uuid". Я сам на нем обжигался несколько раз. Поэтому в обновленной версии кода внес его в переменную key непосредственно в пункте меню.
Строка должна выглядеть так:
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Т.е. в этом куске:
(Нажмите, чтобы показать/скрыть)
я в место
key="$key boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"должен написать
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Я не зря указал ссылку, где находится обновленный код.
Эх, мне бы с ранешним разобраться, а потом уже и новый пытать.

Пользователь добавил сообщение 16 Марта 2019, 23:18:00:
И что делать дальше не понятно.
loopback loop (hd0,1)$isofileВозможное место для ошибки. Если подключены более одного устройтсва, то не всегда первый диск может оказаться первым.
Если я правильно понимаю то (hd0,1) означает первый раздел первого диска и если на нем не найдётся образа то он и не загрузиться.
Вопрос: как написать, чтобы он искал на всех дисках?
initrd (loop)/casper/initrdВы точно знаете, что в этом образе файл тазывается initrd? Последние несколько лет был initrd.lz.
Да я посмотрел при копировании файлов.
 
Чтобы упростить загрузку из исо-образа придумали технологию "loopback bootable". Суть ее в том, что образе есть файл /boot/grub/looback.cfg. В нем прописан конфиг загрузчика для загрузки из исо-образа.
С этим надо ещё разбираться.

Вот только, когда копировали вы допустили ошибку. Нет пареметра "ignore_uuid". Я сам на нем обжигался несколько раз. Поэтому в обновленной версии кода внес его в переменную key непосредственно в пункте меню.
Строка должна выглядеть так:
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Т.е. в этом куске:
(Нажмите, чтобы показать/скрыть)
я в место
key="$key boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"должен написать
key="elevator=noop ignore_uuid boot=casper cdrom-detect/try-usb=true live-media-path=$src/casper noprompt nosplash --"
Я не зря указал ссылку, где находится обновленный код.
Эх, мне бы с ранешним разобраться, а потом уже и новый пытать.
« Последнее редактирование: 17 Марта 2019, 08:51:19 от Shaman207 »
Рубить сучья работа

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Цитировать
liveusb типа fat32.
man fdisk
man mkfs.vfat
« Последнее редактирование: 17 Марта 2019, 01:03:18 от victor00000 »
Wars ~.o

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1794
    • Просмотр профиля
Простите я вообще не понял о чем вы.
Новичкам его понять трудно (ниже он тебя посылает документацию читать)...огромный опыт, но....скорей всего виной то, что у него в аватарке. Потому и редко, когда что-то понятно не посвящённым.

Оффлайн Shaman207

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
  • Ubuntu 18.04 x64, 20.04 x64
    • Просмотр профиля
Я не зря указал ссылку, где находится обновленный код.
Кажется разобрался.
Взял из вашего нового кода пункты с загрузкой с образа и загрузка из каталога.
Теперь конфиг выглядит так и работает.
(Нажмите, чтобы показать/скрыть)

Вашу бы инструкцию добавить в вики, она не гуглиться по ключевым словам.
Еще раз благодарю за помощь.
Рубить сучья работа

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Цитировать
boot
initrd.lz
ubuntu.iso

initrd.lz - autorun нет, сам рука внутри добавить автогрузка скрипт.
boot
initrd.lz
ubuntu.iso
autorun.sh
всё равно не скажу.
Wars ~.o

 

Страница сгенерирована за 0.042 секунд. Запросов: 23.