LINUX.ORG.RU

Grub2 можно научить раскатывать образы дисков?

 


0

2

Хоть и не пятница, но можно ли научить grub2 наподобии dd раскатывать образ диска на диск?

В комплекте модулей grub2, нашлись cat, iorw, disk, parttool. С описаниями как-то неочень на них, может кто использовал эти модули?

★★★★★

Последнее исправление: irton (всего исправлений: 1)

По-моему описание из info-файла достаточно исчерпывающее, по крайней мере для parttool. Для остальных не смотрел пока.

16.3.54 parttool

– Command: parttool partition commands Make various modifications to partition table entries. Each COMMAND is either a boolean option, in which case it must be followed with ‘+’ or ‘-’ (with no intervening space) to enable or disable that option, or else it takes a value in the form ‘COMMAND=VALUE’. Currently, ‘parttool’ is only useful on DOS partition tables (also known as Master Boot Record, or MBR). On these partition tables, the following commands are available:

 'boot' (boolean)

When enabled, this makes the selected partition be the active (bootable) partition on its disk, clearing the active flag on all other partitions. This command is limited to primary partitions.

 'type' (value) 

Change the type of an existing partition. The value must be a number in the range 0-0xFF (prefix with ‘0x’ to enter it in hexadecimal).

 'hidden' (boolean)

When enabled, this hides the selected partition by setting the «hidden» bit in its partition type code; when disabled, unhides the selected partition by clearing this bit. This is useful only when booting DOS or Windows and multiple primary FAT partitions exist in one disk. See also *note DOS/Windows::.

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

ну гуд значит, мне что-то не гуглилось ничего :(

есть еще модуль elf, может он напрямую dd сможет запустить (статически собранный конечно)

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

iorw — прямой доступ к портам.

cat — просто выводит файл на консоль

Команды disk не нашел

If needed, load kernel modules with the command ‘knetbsd_module_elf’. A typical example is the module for the root file system:

grub> knetbsd_module_elf /stand/amd64/6.0/modules/ffs/ffs.kmod

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

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

Сделать я врядли смогу. Модуль elf так и называется elf.module. Да запись могли не реализовать т.к. это не задача загрузчика. Он и файловые системы видит только на чтение поди. Жаль.

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

У меня есть некоторые сомнения что в драйверах файловых систем grub есть возможность записи

Несколько лет назад точно была запись на ряд ФС. Возможно, убрали, поскольку сейчас акцентируется внимание именно на «чистом» RO — драйверы GRUB2 вообще ничего не пишут при монтировании в RO, в отличие от нативных. Проверку моих догадок оставлю как упражнение возможным читателям.

anonymous
()

Погуглил насчет отдельных efi утилит, на подобии efichk. Не нашлось ничего

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

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

А зачем оно нужно, тем более прямо из grub, если не секрет?

Как вариант могу предложить ядро linux + initramsf, их вроде можно и в один файл пихнуть. В фс можно запихать например полный busybox при желании и иметь более-менее полноценную файловую систему. TinyCore так и работает.

При особом желании init может парсить командную строку ядра и сразу запускать dd, так что будет аналог нужной функциональности.

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

По идее можно указать init=/bin/sh и в нем dd вызвать. Но если тебе еще нужно расширить раздел, то придется скрипт с parted велосипедить.

PRN
()

При помощи grub2 можно запускать линукс из «закатанных» .iso-файлов (правда не любые дистрибутивы, а только те, которые умеют потом такую корневую файловую систему использовать).

А там дальше уже любой код можно, например переписать процесс init, чтобы он делал то, что нужно.

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

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

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

Хороший вариант, яж говорю, собираю информацию, вдруг уже и без этого можно. Какой-то grub-dd на гитхабе нагуглился, но не смотрел еще.

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

У меня для похожих задач используется grub + grml + исошка SystemRescue. Внутри SystemRescue есть все необходимое: fsarchiver/clonezilla/partimage.

У clonezilla есть свой livecd. У fsarchiver вроде как тоже сделать можно. Они меньше чем SystemRescue и сразу загрузится то что надо.

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

8 years ago мне кажется ты занимаешься некрофилией. Вероятно оно у тебя не заработает, а может даже не скомпилится.

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

Ну факт то что есть возможность вроде как

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

Он и файловые системы видит только на чтение поди. Жаль.

терракт не удался?

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

При современном уровне развития виртуализации, не стоит такое ждать

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

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

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

Ну прослойка-то, возможно, и лишняя, зато могучая какая

Чего там в итоге, нашёл способ? Я не дочитал

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

Вобщем оно работает, но практическое применение непридумал еще )))

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

ну нашел модуль dd

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

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

да, но для grub-2.06 пришлось править, смотрите форк от Pro-pra

irton ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.