Автор Тема: Live-загрузка и установка с переносного жесткого диска с NTFS  (Прочитано 105449 раз)

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Нет, это главный мейнейнер ядра. Он использует deprecated m-p-d до сих пор вместо m-p. Правильный ответ об авторстве mkimage подскажет rpm -q --changelog mkimage или что тогда значит основной профиль?
Меня интересуют именно стартеркиты, т.к. они доступны для свободного использования и поддерживают разные десктопы, а, насколько я понимаю, их нельзя собрать при помощи m-p. По крайней мере никаких упоминаний о них я там не нашел. Тут, как говорится, за что купил, за то продаю.

Проблема простая. У меня есть две одинаковые тестовые флэшки. Конфиг один и тот же. Некоторые файлы были перемещены, чтобы было больше похоже на Debian/Ubuntu/Mate. vmlinux, full.cz и live сброшены в одну папку live на манер casper.
ui menu.c32
menu title Alt Linux 8.0 Mate

label ubnentry0
menu label Alt Linux 8.0 Mate 32bit
kernel /alt0/live/vmlinuz
append initrd=/alt0/live/full.cz fastboot live automatic=method:disk,label:DATA,directory:alt0/live ramdisk_size=862377 stagename=live showopts lowmem vga=normal quiet splash

label ubnentry1
menu label Alt Linux 8.0 Mate 64bit
kernel /alt1/live/vmlinuz
append initrd=/alt1/live/full.cz fastboot live automatic=method:disk,label:DATA,directory:alt1/live ramdisk_size=875337 stagename=live showopts lowmem vga=normal quiet splash
Флэшка отформатированная в FAT32 грузится прекрасно, а вот с NTFS нет. И это проблема. Может конечно это пустячная проблема, но я из тех людей, которые не успокоятся, пока не решат ее.
« Последнее редактирование: 14.06.2019 20:58:29 от Mr.Madguy »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Меня интересуют именно стартеркиты [...] а, насколько я понимаю, их нельзя собрать при помощи m-p. По крайней мере никаких упоминаний о них я там не нашел. Тут, как говорится, за что купил, за то продаю.
И где же такое зелье расчудесное продаётся? ;-D

make -C /usr/share/mkimage-profiles helpВсе цели alt-p8-* -- это и есть профили стартеркитов. Полагаю, на Сизифе и p9 там должны уже добавиться более свежие профили alt-p9-*.

Флэшка отформатированная в FAT32 грузится прекрасно, а вот с NTFS нет.
Если с загрузчиком проблемы решены, и если это нельзя решить по простому через пропагатор, попробуйте Colaboot. make-initrd пытаемся научить заменять пропагатор целиком и в нём планируется много "транспортов", но это дело текущей разработки...
To moan or to solve -- that is the question!

Петрович

  • Гость
Флэшка отформатированная в FAT32 грузится прекрасно, а вот с NTFS нет.
Попробуй 2 раздела, в FAT32 алт в NTFS остальное.
У меня  2 раздела FAT32.
На 1 syslinux на 2 каталоги ST c alt-p9-xfce-20190612-i586.iso И SY c alt-p9-xfce-sysv-20190612-i586.iso
Меню
Спойлер
timeout 90
totaltimeout 3000
ui gfxboot bootlogo message
menu title ALT (alt-p9-xfce)
prompt 0

label Привет Петрович

label live xfce
  kernel alt0/vmlinuz
  append initrd=alt0/full.cz fastboot live automatic=method:disk,label:ALT stagename=/ST/live showopts lowmem

label live xfce-sysv
  kernel alt0/vmlinuz
  append initrd=alt0/full.cz fastboot live automatic=method:disk,label:ALT stagename=/SY/live showopts lowmem
Из ошибок по Alt+F3 ищет automatic=method:disk,label:ALT
Ищет alt0/full.cz в корне раздела 1. Вторая ищет на 2 разделе диск с меткой ALT automatic=method:disk,label:ALT  stagename=/ST/live
Так и проблемная флешка, которая терялась в разделах при записи в  imagewriter работает без проблем.
« Последнее редактирование: 15.06.2019 10:56:55 от Петрович »

Петрович

  • Гость
попробуйте Colaboot. make-initrd
Хорошая вещь make-initrd-colaboot прочитал толком не понял. Правильно или нет не знаю, но 2 пакета в live
установил qt-fsarchiver и whdd.
Спойлер
su -
mkdir /media/{iso,"live","cdlive"}
mount -o loop /home/user/Загрузки/xfce.iso /media/iso
cd /media/iso ; rsync -vr --progress live /media/cdlive
umount /media/iso/
cd /media/cdlive ; unsquashfs live
systemd-nspawn -D /media/cdlive/squashfs-root/
apt-get update
apt-get install qt-fsarchiver whdd
exit
mksquashfs /media/cdlive/squashfs-root/ /media/live/live
Потом правда с помощью isomaster образ создал.

Оффлайн neobht

  • Завсегдатай
  • *
  • Сообщений: 390
Я иногда удивляюсь упертости.

Вот почитайте, как применять стартеркиты можно продвинуто: https://m.habr.com/post/270337/

А colaboot - это пока скорее игрушка.

Петрович

  • Гость
Я иногда удивляюсь упертости.
2 года назад говорил, приведите пример с командами для флешки.

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Я просто уже который раз пытаюсь донести одну простую мысль. Что без разницы, что использовать в качестве init'а, если без нужных модулей ядра работать ничего все равно не будет. Так зачем стрелять из пушки по воробьям? Тут делов то минут на 10. Добавить ntfs-3g и пропатчить файлы disk.c и mount.c пропагатора, чтобы вызывался modprobe ntfs-3g вместо ntfs. Просто во первых я не знаю, как скормить нужные изменения сборщику дистрибутива на лету, т.е. без внесения изменений в соответствующие пакеты. Просто я хотел бы сначала протестить результат, а потом уже говорить об этом решении, как о законченном патче. А во вторых я хотел найти такое решение, которое не означало бы полную пересборку дистрибутива с 0, т.к. это не очень эффективный подход, когда изменения нужно внести всего в один файлик. У меня просто опыта работы с шелл-скриптами пока маловато.
« Последнее редактирование: 15.06.2019 11:36:26 от Mr.Madguy »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
как скормить нужные изменения сборщику дистрибутива на лету, т.е. без внесения изменений в соответствующие пакеты [...] хотел найти такое решение, которое не означало бы полную пересборку дистрибутива с 0
Дистрибутив собирается на основе готовых бинарных пакетов, поэтому на этапе сборки определяются все необходимые репозитории, откуда эти пакеты будут браться. Помимо основных веток, можно подключить свою hasher-repo или таски публичной сборочницы с тестовыми заданиями. Это всё -- своего рода аналоги оверлеев именно для целей тестирования и отладки. Если вносятся изменения в такой пакет, как пропагатор, нет иного способа протестировать его правильно по всем канонам, кроме как собрать установочный, живой или rescue образ. И нужно иметь ввиду, что любая ошибка в процессе с PID 1, которым является пропагатор, моментально приведёт к панике ядра -- вы даже не будете знать, что и где произошло.
To moan or to solve -- that is the question!

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Дистрибутив собирается на основе готовых бинарных пакетов, поэтому на этапе сборки определяются все необходимые репозитории, откуда эти пакеты будут браться. Помимо основных веток, можно подключить свою hasher-repo или таски публичной сборочницы с тестовыми заданиями. Это всё -- своего рода аналоги оверлеев именно для целей тестирования и отладки. Если вносятся изменения в такой пакет, как пропагатор, нет иного способа протестировать его правильно по всем канонам, кроме как собрать установочный, живой или rescue образ. И нужно иметь ввиду, что любая ошибка в процессе с PID 1, которым является пропагатор, моментально приведёт к панике ядра -- вы даже не будете знать, что и где произошло.
А смысл? Смысл ждать минут 30 сборки дистрибутива, чтобы увидеть например свою ошибку, если у меня есть тестовая флэшка и все, что мне нужно, это за пару секунд пересобрать full.cz и подкинуть его в готовый дистрибутив? Вот короче два файлика пропагатора с тривиальными патчами. Если модули ntfs-3g и fuse не включены в full.cz, то их надо включить. Я не знаю, как это все сделать. Может кто то поможет, если не трудно? И остается только надеяться, что мы угадали с причиной появления ошибки ENODEV в mount -t ntfs /dev/sdb1 /image.
« Последнее редактирование: 15.06.2019 15:26:25 от Mr.Madguy »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
А смысл? Смысл ждать минут 30 сборки дистрибутива, чтобы увидеть например свою ошибку, если у меня есть тестовая флэшка и все, что мне нужно, это за пару секунд пересобрать full.cz и подкинуть его в готовый дистрибутив?
Большой образ из готовых пакетов собирается 5~10 минут на хороших машинах с локальным репозиторием. Rescue намного быстрее. full.cz закидывается в разные места при сборке образа. Уверены, что знаете о них обо всех? Например, в \EFI кладётся файлик с образом VFAT-раздела с тем же файлом (в том числе) и это записывается в определённые сектора ISO-образа. Смысл ещё в том, что если это нужно только вам, надеяться надо только на себя.

Вот короче два файлика пропагатора с тривиальными патчами.
Патчей там нет. Там испорченные виндоуз-редактором исходники. Чтобы превратить это в патчи, надо ещё приложить усилия. Тогда, взглянув на эти патчи:
--- disk.c 2018-11-17 22:39:21.149090020 +0300
+++ disk.c.new 2019-06-15 17:21:49.470183746 +0300
@@ -269,2 +269,3 @@
-     my_mount(device_fullname, IMAGE_LOCATION, "ntfs", 0) == -1) {
- stg1_error_message("I can't find a valid filesystem (tried: ext2, ext3, ext4, vfat, ntfs, iso9660, reiserfs).");
+     my_mount(device_fullname, IMAGE_LOCATION, "ntfs", 0) == -1) &&
+     my_mount(device_fullname, IMAGE_LOCATION, "ntfs-3g", 0) == -1) {
+ stg1_error_message("I can't find a valid filesystem (tried: ext2, ext3, ext4, vfat, ntfs, ntfs-3g, iso9660, reiserfs).");

--- mount.c 2018-11-17 22:39:21.150090020 +0300
+++ mount.c.new 2019-06-15 17:22:33.502181310 +0300
@@ -289,0 +290,2 @@
+ if (!strcmp(fs, "ntfs-3g"))
+ my_insmod("ntfs-3g", NULL);
Можно уверенно сказать, что это работать не будет. disk.c даже не скомпилируется. Но дело даже не в синтаксисе, почитайте для начала, что требуется для поддержки fuse. ntfs-3g не ядерный модуль.

Сначала наполните нужным содержимым initramfs при его сборке или каким угодно другим способом -- распакуйте, допилите и запакуйте, например. Затем в rdshell добейтесь необходимого руками. Только после этого имеет смысл ставить hasher, gear, git-core и патчить пропагатор локально нормальным линуксовым редактором.
« Последнее редактирование: 15.06.2019 17:49:53 от klark973 »
To moan or to solve -- that is the question!

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Патчей там нет. Там испорченные виндоуз-редактором исходники. Чтобы превратить это в патчи, надо ещё приложить усилия. Тогда, взглянув на эти патчи:
--- disk.c 2018-11-17 22:39:21.149090020 +0300
+++ disk.c.new 2019-06-15 17:21:49.470183746 +0300
@@ -269,2 +269,3 @@
-     my_mount(device_fullname, IMAGE_LOCATION, "ntfs", 0) == -1) {
- stg1_error_message("I can't find a valid filesystem (tried: ext2, ext3, ext4, vfat, ntfs, iso9660, reiserfs).");
+     my_mount(device_fullname, IMAGE_LOCATION, "ntfs", 0) == -1) &&
+     my_mount(device_fullname, IMAGE_LOCATION, "ntfs-3g", 0) == -1) {
+ stg1_error_message("I can't find a valid filesystem (tried: ext2, ext3, ext4, vfat, ntfs, ntfs-3g, iso9660, reiserfs).");

--- mount.c 2018-11-17 22:39:21.150090020 +0300
+++ mount.c.new 2019-06-15 17:22:33.502181310 +0300
@@ -289,0 +290,2 @@
+ if (!strcmp(fs, "ntfs-3g"))
+ my_insmod("ntfs-3g", NULL);
Можно уверенно сказать, что это работать не будет. disk.c даже не скомпилируется. Но дело даже не в синтаксисе, почитайте для начала, что требуется для поддержки fuse. ntfs-3g не ядерный модуль.

Сначала наполните нужным содержимым initramfs при его сборке или каким угодно другим способом -- распакуйте, допилите и запакуйте, например. Затем в rdshell добейтесь необходимого руками. Только после этого имеет смысл ставить hasher, gear, git-core и патчить пропагатор локально нормальным линуксовым редактором.
Ах, да. Скобку закрывающую удалить забыл. И не стал качать весь дистрибутив. Скачал файлы по одному. Потому может и побились. По крайней мере в прошлый раз все скомпилировалось нормально.

Ну в принципе да. Тут может понадобится мой предыдущий фикс, который вызывал команду mount напрямую, наподобие my_insmod из файла modules.c. Можно попробовать запускать mount, можно /usr/sbin/mount.ntfs, а можно попробовать напрямую ntfs-3g. Надо только положить все, что нужно, в full.cz. Тоже в принципе несложный фикс. Другие дистрибутивы то как то с этим справляются.

А так да. Это уже который раз, когда я сталкиваюсь с основным девизом свободного программного обеспечения. Хочешь, чтобы что то было сделано - сделай это сам. Я конечно понимаю, что стараться из за хотелок одного человека никто не будет, т.к. это не эффективно. Но поймите и меня правильно. Мне тоже не эффективно изучать пол Линукса ради одного простого фикса, на который знающему человеку понадобятся считанные минуты.
« Последнее редактирование: 15.06.2019 19:15:27 от Mr.Madguy »

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Все! Получилось! Как я и говорил, там делов то на 10 минут. Это мне по незнанию пришлось пол дня разбираться, как заставить mkimage-profiles работать, как надо. Надо было просто вот сюда
http://git.altlinux.org/people/mike/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=blob;f=sub.in/stage1/modules;h=54814ad9378eda10b8602362abf421e33e5fe2f3;hb=ca7f28250b3a0aed9a408e9ac026c2b374e0194b
добавить ntfs.ko. Даже propagator патчить не пришлось. Тормозит конечно сильнее, чем FAT32, но работает. Поддержку fuse и ntfs-3g конечно наверное добавить будет несколько сложнее. Возможно придется патчить propagator. mount -l говорит, что мои NTFS диски подключены как fuseblk.

Для 64 бит собралось все нормально, а вот с 32 битами возникают какие то проблемы. Сборка ISOшника привела к почти полному зависанию компьютера. Подозреваю, что заканчивается память. Так у меня 16Гб, но возможно в 32-х битном режиме не все доступно.
« Последнее редактирование: 16.06.2019 19:45:02 от Mr.Madguy »

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Все. Собрал под 32 бита. Но для этого пришлось подрубить своп на 16Гб. Будет время, пересоберу все дистрибутивы, которые мне нужны. Пока не знаю, остановлюсь ли на достигнутом, или попробую прикрутить ntfs-3g. Там все таки немного сложнее. Но что то голый ntfs уж очень сильно тормозит. Хотя не факт, что ntfs-3g будет работать быстрее.

Оффлайн neobht

  • Завсегдатай
  • *
  • Сообщений: 390
Я иногда удивляюсь упертости.
2 года назад говорил, приведите пример с командами для флешки.

Очевидно, что статью вы не читали?

Петрович

  • Гость
Очевидно, что статью вы не читали?
Для xfce достаточно того что я знаю.
А у других может времени нету, легче готовое взять. На примере проще понять. Кому нужно может и почитает.