LINUX.ORG.RU
ФорумAdmin

Перезагрузиться в нужную ОС

 


0

1

Кто нибудь писал скрипты, чтобы перезагружаться в заданную ОС без выбора в момент загрузки. То есть у меня несколько ОС (винда и несколько линуксов), я нахожусь в винде и хочу загрузить CachyOS, но вынужден ждать пока винда выполнит свои дела, потом ждать пока UEFI подумает прежде чем загрузит Grub2 чтобы выбрать нужный мне пункт. А хотелось бы нажать ярлык на скрипт, который пропишет в конфиге Grub2 методом поиск/замена дефолтный пункт и вызовет команду перезагрузки. Проблема что надо заново устанавливать Grub2 на раздел, который будет виден винде. Или может надо в конфиге Grub2 прописать команду, чтобы она на виндовом диске, который доступен со всех ОС прочитала некий конфиг с единственным параметром 0-1-2-3, что означало бы номер пункта в Grub2.

тема, исходник скачать программку переключатель пункта меню Grub2 по умолчанию.



Последнее исправление: AZJIO (всего исправлений: 2)
Ответ на: комментарий от andytux

Он не того хотел. Оба твоих варианта – про переконфигурирование загрузчика. А ему нужны две команды (или ярлычка) в предыдущей загруженной ОС.

Для GRUB рецепт был в большой статье на сайте IBM с документацией (ныне, к сожалению, покойном). Скорее всего, можно порыться и найти.

Для UEFI не уверен, что такое возможно.

hobbit ★★★★★
()

я хз, как в этом твоём CachyOS, но, например, в дебиане граб может брать значения переменных из файла /boot/grub/grubenv. проще всего, видимо, иметь два варианта этого файла, типа grubenv.win и grubenv.lnx, с соответственно настроенным saved_entry в каждом, и перед перезагрузкой копировать нужный со штатным именем.

(и да, нужный пункт конфига нужно указывать в виде 0>1>2>3).

anonymous
()
Ответ на: комментарий от hobbit

Ну и в чём проблема, написать скрипт, который будет в строке с конфигом grub менять set default и далее выполнять shutdown -r -t0?

Вторая команда в Windows тоже работает.

Нюансы доступности раздела с конфигом grub - уже другое.

kostik87 ★★★★★
()
Ответ на: комментарий от hobbit

Для УЕФИ. Запускаешь efibootmgr с параметром изменить приоритет. Ярлычком будешь запускать или ещё как, дело пятое. Аналогично с грубом. После этого перезагружаешься. Команда может быть в том-же ярлычке, что и смена приоритета. А уж когда система соизволит это выполнить, жди…

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

andytux ★★★★★
()

Скрипт с заменой одной строки в конфигурации загрузчика нет проблем создать. И таймер можно в 0 установить. Только:

  1. ждать в любом случае придётся, этого ну никак не избежишь. Выбор, что загружать, это буквально пара секунд в паре минут перезагрузки.
  2. запускать скрипт придётся с правами суперпользователя, что значительно дольше, чем выбор дистрибутива в процессе загрузки.

Вопрос в ином. Нафига несколько Linux дистрибутивов на одном диске? Дичь какая-то.

l00p
()
Ответ на: комментарий от andytux

С такими знаниями (запросами), efibootmgr страшная вещь. После только под Windows можно будет сменить адекватно прошивку UEFI, чтобы без костылей. Может и такое наделать, что потом вообще ни с чего не загрузится, все пункты поудаляет.

l00p
()
Ответ на: комментарий от hobbit

раздел с fat для файлового флага, который указывает что надо запускать.
скрипт в груб-меню который запускает ос в завиcbмости от именования файла на разделе с fat.
ярлыком создаешь файл и перезагружаешься.
fat для совместимости с виндой.
костыль но тупой и простой

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от hobbit

А ему нужны две команды (или ярлычка) в предыдущей загруженной ОС.

Для UEFI не уверен, что такое возможно.

А разве в efibootmgr не умеет с помощью команды выставлять приоритет загрузки? Как раз на ярлычок вешаешь и всё, нет?

u5er ★★★
()
Ответ на: комментарий от u5er

Каждый раз перезаписывать efi vars ну такое себе решение, с учётом, что в каждой материнке оно отчасти своё и бывают глюки.

Были даже темы, где после вмешательства в efi vars не было возможности загрузиться.

Да и число циклов перезаписи флеш памяти ограничено. Лучше уж конфиг править или флаг в виде файла делать или копировать готовый конфиг, где по умолчанию либо одна ОС, либо другая.

kostik87 ★★★★★
()
Ответ на: комментарий от andytux

В большой вероятностью, или гол в свои ворота, или снесёт ворота.

даже если ты снесёшь мне все загрузчики кривым скриптом, я со 100% вероятностью восстановлю все загрузчки, а загружусь в любую ось почти мгновенно, для этого мне просто на флешку надо в конфиг поместить пункты загрузки осей, коих копии у меня на каждом диске/флешки. Лучше по делу что нибудь скажи.

AZJIO
() автор топика
Ответ на: комментарий от pfg

раздел с fat для файлового флага

неужели Grub2 не прочитает файл и надо создавать раздел? Даже G4D я помню мог читать и писать в файл в любую позицию. И ntfs для него на сколько я знаю не проблема, он же ISO с ntfs грузит без проблем, кроме тех сборок что не озаботились поместить дрова ntfs в свои ядра.

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

В загрузчиках поддержка файловых систем реализована зачастую на минимальном уровне и только в режиме чтения, а точнее понимания структуры размещения файлов, в каких блоках ФС и далее в секторах лежат данные файла ядра и initramfs / initrd, конфиг загрузчика и модули загрузчика, если нужны.

Поддержки записи там нет.

Если ты хочешь править конфиг загрузчика, полный, частично вынесенные на поддерживаемую из Windows файловую систему, создавать файл как флаг - тебе нужно оперировать файловой системой, доступной на запись из Windows и чтобы загрузчик мог её читать.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от AZJIO

Изучай команды grub2.

Но исходя из написанного здесь в оперативную память загружается файл bootmgr, затем в памяти в некоторое смещение данных загруженного файла записываются другие значения и затем модифицированной в памяти копии файла загрузчика передаётся управление.

На диск в данном случае ничего не записывается.

kostik87 ★★★★★
()
Ответ на: комментарий от AZJIO

Да, хз, видимо ты не понимаешь, что в нём делается, потому как изначально ты пишешь:

Даже G4D я помню мог читать и писать в файл в любую позицию. И ntfs для него на сколько я знаю не проблема, он же ISO с ntfs грузит без проблем, кроме тех сборок что не озаботились поместить дрова ntfs в свои ядра.

Т.е. данное утверждение подразумевает, что ты думаешь, что загрузчик может записывать что-то на накопитель.

Я тебе пишу, что драйверы загрузчика могут только читать файловые системы.

А потом ты приводишь пример конфига, где с файловой системы в начале ЧИТАЕТСЯ файл в память, а не пишется что-то на диск, а потом в ПАМЯТИ же модифицируется, без записи чего-то на диск.

Видимо, не понимаешь. Путаешь мух и котлеты.

И grub4dos - это не grub2 или grub-legacy, некоторые команды там модифицированы и добавлены новые. Та же map.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от kostik87

Так это частный случай чтобы не патчить оригинальный загрузчик. Ведь не важно где он находится в памяти или на диске, если он его изменит то он изменится в том месте в котором находится.

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

Даже G4D я помню мог читать и писать в файл в любую позицию. И ntfs для него на сколько я знаю не проблема, он же ISO с ntfs грузит без проблем, кроме тех сборок что не озаботились поместить дрова ntfs в свои ядра.

Т.е. данное утверждение подразумевает, что ты думаешь, что загрузчик может записывать что-то на накопитель.

Я тебе пишу, что драйверы загрузчика могут только читать файловые системы.

А потом ты приводишь пример конфига, где с файловой системы в начале ЧИТАЕТСЯ файл в память, а не пишется что-то на диск, а потом в ПАМЯТИ же модифицируется, без записи чего-то на диск.

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

kostik87 ★★★★★
()
Ответ на: комментарий от l00p

ждать в любом случае придётся, этого ну никак не избежишь.

ждать можно по разному, например пойти чай попить или на другой комп там что-то поделать, пока на этом перезагружается. А сидеть ждать для передвижения курсора в Grub2 бесполезное ожидание, оно как раз в средине по времени. Я думал что nvme работает быстро как один мне говорил запускается винда 2 секунды, но это она у него из сна запускается 2 секунды, а по факту 12 сек и то появление рабочего стола, а после ещё прогрузка прог из автозагрузки. Linux тоже не мгновенно, но в Cinnamon есть режим сна с подпиткой памяти вот там он просыпается мгновенно.

Вопрос в ином. Нафига несколько Linux дистрибутивов на одном диске? Дичь какая-то.

А есть способ собрать пакеты rpm, deb, zst на одном Linux?

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

Конечно. Я, работая в Arch, могу собрать пакет под любой доступный дистрибутив. Более того, если вдруг возникнет нужда в прям оригинальном окружении другого дистрибутива, мне проще создать виртуальную машину, чем пердолиться с загрузкой кучи дистров с железного диска.

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от kostik87

chroot

ну это уже говорит о том что нужна ОС, к которой нужно подключиться. К тому же если мне скажут что твоя прога не работает, то я что скажу (?), что я её в chroot собирал. Я мало того что собираю на реальной системе еще и запускаю установщик и проверяю ярлык в меню и кликаю что он запустился. Как один говорил делай хорошо, плохо само получится.

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

А ещё тебе под Эльбрус нужно собирать, в полную луну и обязательно на горе Фудзи во время цветения сакуры, слушая казахскую этническую музыку, сидя в позе лотоса.

kostik87 ★★★★★
()
Ответ на: комментарий от l00p

Если запускать сборку в контейнере и потом его удалять - нет.

Автор хотелки дописывает, и проблема подождать 15 секунд до перезапуска ОС, если так уж нужно высосана из пальца. Он со стула за чаем будет вставать секунды 2, отодвигать стул ещё пару секунд и так далее.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

не, мне и этого хватает ведь это три основных пакета наверно идёт на 99% линуксах. Мне бы МакОС ещё, но покупать ради бесплатной компиляции я уже не мазахист. На малинку собрал 32 битную, на 64 битную не стал, ажиотажа с 32 не было, а тут ещё arm-winndows подвезли…

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

Учись, студент!

dd if=/dev/zero of=/DISK bs=1M count=4k status=progress
4262461440 bytes (4,3 GB, 4,0 GiB) copied, 54 s, 78,9 MB/s
4096+0 records in
4096+0 records out
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 54,485 s, 78,8 MB/s
mkfs.ext4 -U clear /DISK 
mke2fs 1.47.3 (8-Jul-2025)
Discarding device blocks: done                            
Creating filesystem with 1048576 4k blocks and 262144 inodes
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
mount /DISK /mnt/
lsblk -f /DISK 
lsblk: /DISK: не блочное устройство
mount /DISK /mnt/
df -h
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/loop0         3,9G         1,1M  3,7G            1% /mnt
cd /mnt/
touch cazzo
ls -l
итого 16
-rw-r--r-- 1 root root     0 ноя  6 15:49 cazzo
drwx------ 2 root root 16384 ноя  6 15:45 lost+found

Понял?

l00p
()
Ответ на: комментарий от AZJIO

А есть способ собрать пакеты rpm, deb, zst на одном Linux?

Десяток способов, от контейнеров до KVM. А лучше всего не собирать, пусть майнтейнеры соответствующих дистрибутивов мучаются.

Aceler ★★★★★
()
Ответ на: комментарий от frunobulax

Виртуалку не освоил, где диск резиновый в пределах разрешённого. К тому же в виртуалке можно сеть компьютеров создать, чего не сделаешь с 2-3 системами с реальной загрузкой.

l00p
()
Ответ на: комментарий от l00p

Да лет 20 назад всякие виртуалбоксы и квеми пробовал, может они тогда были не такими крутыми, но при тесте виндовых LiveCD там иногда бывали косяки с драверами виртуальных дисков, поэтому даже тогда не проникся, всегда на реале тестил. Сейчас Qemu использую только для теста загрузчика, чтобы посмотреть меню Grub2.

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

Подожди, ещё матом пошлют, когда удалят из Windows раздел с Linux. Орать будут, аж не успеешь от слюней утираться. Во всех смертных грехах обвинят твой Linux. Ещё веселее будет, если сами возьмутся переустанавливать Windows. Там же 100500 ненужных фоток затерётся без шансов на восстановление. Тут можно и по физиономии получить. Пройдено, знакомо. Лучше не лезь, они не заценят. А вот вечером установил Windows, утром малвари море, это норма. АВ не поможет, тоже пройдено.

l00p
()
Ответ на: комментарий от l00p

Подожди, ещё матом пошлют, когда удалят из Windows раздел с Linux.

  1. Из Windows разделы Linux не видны, старая утиля которая это могла на Win10 перестала работать. Так что они изолированы. тем кому я ставлю не имеют знаний для открытия менеджера разделов.
  2. Ещё и хвалили, сын сломал винду, а мама на линуксе по интернету шарит. Сынок уроки учит теперь, у мамы проблем нет.

Ещё веселее будет, если сами возьмутся переустанавливать Windows.

так и было снесли мой линукс, поставили винду, как обычно без вай-фай и скачать дрова не могут, инет то не работает. Я злой говорю так поставить то можно винду за 15 минут, много ума не надо, надо было меня и звать, а не готов на исправление криворукости предыдущего. В итоге я вай фай включил и ушёл, позже выяснил, что линукс не сломали, просто загрузку снесли, я думал отформатили диск, оказалось только логический винды. Восстановил, правда он был 12-й, а на дворе уже где-то 16 год.

Одной женщине сделал конфетку, не оценили (уже ограничиваю себя от этого), отдали челу он воткнул 7-ку, а там прога работала только для WinXP, он и деньги взял и носила она к нему комп, в общем столько заморочек пока худо криво заработало (2 дня не подождали сломали мою конфетку), потом зовут опять, тырнет не работает, на нужный сайт не заходит, ну а я не хочу из кривого компа что-то выжимать, втыкаю ей Grub2 и пару тройку образов линукс, заходим с него на её сайт, предупреждаю что он ничего не сохранит в историю и ухожу, пришло понимание кто конфетку почти бесплатно делает, а кто за тройную сумму за 5 минут с образа ставит винду ничего не настраивая.

AZJIO
() автор топика
Последнее исправление: AZJIO (всего исправлений: 3)