1 (15.11.2014 23:22:04 отредактировано DiabloPC)

Подкиньте идею как такое сделать?
Имеем:

 Консоль:
/dev/sdb1   *        2048    67102719    33550336   83  Linux
/dev/sdb2        67102720    78161919     5529600   82  Linux swap / Solaris

Загрузчик GRUB1
В конце диска есть свободное место, там будет раздел ~10GB (если нужно, можно и больше, но не желательно)

Нужно:
Сделать образ корневой ФС, и желательно сжатый
На третий раздел впилить какой-то MinimalBoot
И в GRUB добавить раздел "RESTORE" - откуда должна загрузится эта системка распаковать образ в /dev/sdb1  и уйти в перезагрузку.
И все это полным автоматом так как в управлении ориентируемся на ПДУ, а там с нормальных кнопок, которые есть и на клавиатуре доступно только стрелки, "esc" и "Enter", так что в грабе выбрать и загрузить что-то отличное от образа по умолчанию можно, но дальше особо рулить не получится...

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

2

diablopc
Не, ну dd и прописать машинку в основной загузчик. Не подойдёт?

3

mvt пишет:

Не, ну dd и прописать машинку в основной загузчик. Не подойдёт?

В принципе подойдет...
...единственное - это как паралельно сжать это все???
а то образ в 12-13 гиг эт как-то некошерно будет)

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

4

diablopc пишет:
mvt пишет:

Не, ну dd и прописать машинку в основной загузчик. Не подойдёт?

В принципе подойдет...
...единственное - это как паралельно сжать это все???
а то образ в 12-13 гиг эт как-то некошерно будет)

А сожмёте, как грузить будете? Вы хотели 10 а будет 12 - сильно много?
PS У меня штук восемь - и все нормально грузятся и работают. Общий загрузчик - grub 0.97.
Это уж потом они как-то со своими грузятся. А можно и ядро с initrd просто прописать.

5

mvt пишет:

А сожмёте, как грузить будете?

Эммм.....
Мне его грузить и не нужно...
на разделе с backup должна быть отдельная система, никак не зависящая от основной

mvt пишет:

можно и ядро с initrd просто прописать.

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

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

6

Не, ну сделайте образ в файл. Меняйте его ежедневно. При неудаче на основной машинке разворачивайте на основном разделе. Нет? Или сделайте две машины и синхронизируйте их. Как вообще Вы хотите?

7 (16.11.2014 00:05:42 отредактировано DiabloPC)

mvt пишет:

сделайте образ в файл

Это и нужно

mvt пишет:

Меняйте его ежедневно.

Это, как раз и ненужно)

mvt пишет:

Как вообще Вы хотите?

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

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

8

diablopc пишет:

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

Вы тихо прикалываетесь. ab
dd if=/dev/sda1 of=/dev/sda6/vach.file #это просто пример
при неудаче - dd if=/dev/sda6/vach.file of=/dev/sda1
Вот и всё ab
Загрузчик в MBR останется. Но. Если накроется жёсткий диск - накроется всё. А Вы не могли бы инфу (ценную) держать на другом разделе, диске, внешнем носителе...? Это не проще?

9

Ценная инфа и так на другом разделе.
НО!
Но все это ориентируется не на себя, а на юзверей для которых слово "консоль" - из области ядерной физики, а систему убить всеравно умеют.
Вот и нужно установить систему, настроить все и сделать возможность отката до этой точки самим юзверем, без моего вмешательства и переустановки системы. ну а на ПДУ ориентируемся так как есть пару машин которые таскаются как медиацентры и с управления кроме пду там ничерта нету.

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

10

diablopc пишет:

Ценная инфа и так на другом разделе.
НО!
Но все это ориентируется не на себя, а на юзверей для которых слово "консоль" - из области ядерной физики, а систему убить всеравно умеют.
Вот и нужно установить систему, настроить все и сделать возможность отката до этой точки самим юзверем, без моего вмешательства и переустановки системы. ну а на ПДУ ориентируемся так как есть пару машин которые таскаются как медиацентры и с управления кроме пду там ничерта нету.

Вот здесь Вы борзеете ab Никакой юзверь не будет Вам восстанавливать систему. Или учите их хотя бы команде dd ab

11

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

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

12 (16.11.2014 01:03:03 отредактировано Fat-Zer)

diablopc пишет:

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

ты ищешь что-то готовое или хочешь сделать сам?

Если первое, то вероятность того, что кто-то из местных сталкивался с этим минимальна... а вероятность найти в гугле что-то готовое, что можно использовать, что будет в открытом и лёгком доступе и что потребует усилий на то, чтобы понять «как эта чертовщина работает» меньше, чем запилить с нуля, тоже не особо велика, ИМХО. [Возможно я не прав в своих оценках]

Если хочешь сделать сам, то флаг в руки... начинай, задавай конкретные вопросы, что не понятно/не знаешь как, рассказывай как-что решил сделать — попытаемся подсобить советами/идеями/конструктивной критикой... а продумывать всю архитектуру с нуля и подробно описывать за вас ИМХО ни кто не станет — это тяжёлый неоплачиваемый труд...

95% процентов проблем находятся между клавиатурой и стулом.

13

Fat-Zer пишет:

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

ОК
Начнем с того чем сделать сжатый образ диска?
предполагаю что-то такое dd if=/dev/sdb1 bs=1M conv=noerror | gzip -c > /root.gz
ну и обратно: gzip -dc /root.gz | dd of=/dev/sdb1 bs=1M conv=noerror
Вопрос в том на сколько это правильно и эфективно? Ну и стоит ли использовать именно gzip или есть варианты получше??

Второе - это что поставить в качестве второй системы, учитывая что нужно только чтобы после загрузки запустилось это: gzip -dc /root.gz | dd of=/dev/sdb1 bs=1M conv=noerror, а после окончания этого процеса reboot. Соответственно чем меньше оно будет весить - тем лучше.

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

14

diablopc пишет:

Начнем с того чем сделать сжатый образ диска?

fsarchiver

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

15 (16.11.2014 01:34:10 отредактировано Fat-Zer)

diablopc пишет:
mvt пишет:

Не, ну dd и прописать машинку в основной загузчик. Не подойдёт?

В принципе подойдет...
...единственное - это как паралельно сжать это все???
а то образ в 12-13 гиг эт как-то некошерно будет)

ИМХО в данном случае dd не очень хорошо подходит в силу множества подводных камней и ухищрений, на которые придётся идти, при снятии образа. Хотя, как вариант конечно допустим...
Если рассматривать исключительно простые инструменты, то я бы в качестве бекенда использовал бы tar, а ФС пересоздавал бы с нуля...
Если что-то посложнее, то после быстрого просмотра гугла, я бы копал в сторону fsarchive.

1000Mhz, опередил на минуту))

95% процентов проблем находятся между клавиатурой и стулом.

16 (16.11.2014 01:39:41 отредактировано 1000Mhz)

Fat-Zer пишет:

1000Mhz, опередил на минуту))

ab "dd не нужен" как сказали бы на лор`е

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

17 (16.11.2014 01:51:34 отредактировано Fat-Zer)

diablopc пишет:

Второе - это что поставить в качестве второй системы, учитывая что нужно только чтобы после загрузки запустилось это: gzip -dc /root.gz | dd of=/dev/sdb1 bs=1M conv=noerror, а после окончания этого процеса reboot. Соответственно чем меньше оно будет весить - тем лучше.

В качестве тяжёлого решения: я бы брал любой (который мне кажется наиболее подходящим) дистр и убирал бы оттуда лишнее... как конкретный вариант: сборка минимального образа с помощью debootstrap. Из бонусов: кроме восстановления резервной копии всегда под рукой будет полноцеппая рабочая система на всякий пожарный. Из минусов: относительно толсто.
В качестве малого: initrd и всё. честно признаться, сам initrd я ни когда не собирал, так что тут деталей сказать не могу...

После загрузки я бы запускал скрипт-меню на ncurses'е... Как сам запуск организовать зависит от дистра или initrd... для sysvinit-based системы достаточно просто подправить inittab.

1000Mhz пишет:

"dd не нужен" как сказали бы на лор`е

на лоре за такое можно и саной тряпкой по мордасам схлопотать он анонимов =)

95% процентов проблем находятся между клавиатурой и стулом.

18

Fat-Zer пишет:

в данном случае dd не очень хорошо подходит

потом у что можно взять простой tar.

Единственное, при  создании "образа" нужно явно указать список каталогов НЕ указывая там каталог с бекапами и всякие /proc.  (или наоборот, tar --exclude).

Fat-Zer пишет:

В качестве малого: initrd

в данном  случае я не очень понимаю, как тут initrd заюзать.  В смысле —  зачем?

Fat-Zer пишет:

сам initrd я ни когда не собирал

там не сложно:

mkinitrd -c -k 3.14.17-smp -m ehci_pci:ums_realtek:hid_generic:usbhid:loop:f2fs -f ext4 -r /dev/sda3 -w 3

как-то  так.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

19 (16.11.2014 02:18:02 отредактировано 1000Mhz)

drBatty пишет:

потом у что можно взять простой tar.

Не надо брать tar. Хотя бы потому, что он не сможет сжать корневой раздел запущенной системы и вывалится с ошибкой, уже проходили-с. Да, это можно сделать с лайв-сд.. но зачем?

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

20

1000Mhz пишет:

Хотя бы потому, что он не сможет сжать корневой раздел запущенной системы и вывалится с ошибкой, уже проходили-с.

C backup определились, будет fsarchiver.

Fat-Zer пишет:

После загрузки я бы запускал скрипт-меню на ncurses'е...

Ненене, никаких меню и управления со стороны юзверя))
Запустилось, прогресбар от 0 до сотни и ребут)

Fat-Zer пишет:

на лоре за такое можно и саной тряпкой по мордасам схлопотать он анонимов =)

Это точно и не только от анонимов)

drBatty пишет:

там не сложно:

mkinitrd -c -k 3.14.17-smp -m ehci_pci:ums_realtek:hid_generic:usbhid:loop:f2fs -f ext4 -r /dev/sda3 -w 3

как-то  так.

А вот с этого места поподробнее пожалуйста, такого никогда не приходилось делать_)

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

21

drBatty пишет:

в данном  случае я не очень понимаю, как тут initrd заюзать.  В смысле —  зачем?

чтобы было минимум

1000Mhz пишет:

Не надо брать tar. Хотя бы потому, что он не сможет сжать корневой раздел запущенной системы и вывалится с ошибкой, уже проходили-с. Да, это можно сделать с лайв-сд.. но зачем?

а зачем лайвсд, если можно из той же бекапной системы это сделать...

diablopc пишет:

Ненене, никаких меню и управления со стороны юзверя))
Запустилось, прогресбар от 0 до сотни и ребут)

даже не выведешь злую табличку «ща все данные сотруться, Вы точно хотите продолжить?»...  ну как знаешь... тогда всё проще... просто свой скрипт запускай... а ведь можно ещё было бы

drBatty пишет:

mkinitrd

пока я не полез в гугл, это кто такой? моя гента про него не слышала...

drBatty пишет:

в данном  случае я не очень понимаю, как тут initrd заюзать.  В смысле —  зачем?

не initrd, а болей-менее полноценный ramdisk... оговорился... собственно кроме busybox'а и fsarchiver'а нам ничего не надо...

95% процентов проблем находятся между клавиатурой и стулом.

22 (16.11.2014 03:40:04 отредактировано DiabloPC)

Fat-Zer пишет:

чтобы было минимум
собственно кроме busybox'а и fsarchiver'а нам ничего не надо...

Вот вот)

Fat-Zer пишет:

даже не выведешь злую табличку «ща все данные сотруться, Вы точно хотите продолжить?»...  ну как знаешь... тогда всё проще... просто свой скрипт запускай... а ведь можно ещё было бы

Неа, обойдутся, темболее что все важные даные хранятся либо на другом разделе, либо на другом винте, так что максимум что они потеряют это историю в опере или обновления плагинов в XBMC))

Fat-Zer пишет:

пока я не полез в гугл, это кто такой? моя гента про него не слышала

Ну не знаю как гента, а моя сюся про такое знает))
Единственное это то что я не представляю как это использовать)

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

23

1000Mhz пишет:

Не надо брать tar.

ваше  мнение  очень важно  для нас.

1000Mhz пишет:

Хотя бы потому, что он не сможет сжать корневой раздел запущенной системы и вывалится с ошибкой, уже проходили-с.

dd сможет, вот только  не факт, что такая система будет  работать  после восстановления.  Мне такое УГ вместо бекапов не нужно. А вы делайте, я разрешаю. С условием,  что потом плакать не  будете.

И  кстати, что  за ошибка?

diablopc пишет:

А вот с этого места поподробнее пожалуйста, такого никогда не приходилось делать

ну  это initrd. Смысл прост: после  загрузки  ядра  грузится в память  файл /boot/initrd.gz  (имя может быть  другим), который является образом Linux. ОЧЕНЬ маленьким.  3,6M  у меня сейчас. Там  есть  оболочка ash  ну  и минимум утилит.  А уж этот  Linux грузит основную систему. Мне он нужен  для  подключения модуля f2fs, ибо  пересобирать ядро мне  лень,  а систем а  у меня раньше на этой  ФС  стояла. Часто  применяют  initrd для шифрования _всего_  диска(кроме /boot конечно).

Fat-Zer пишет:

пока я не полез в гугл, это кто такой? моя гента про него не слышала...

+ открыть спойлер

# mkinitrd --help
Usage: mkinitrd [OPTION]

mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip
archive) used to load kernel modules that are needed to mount the
root filesystem, or other modules that might be needed before the
root filesystem is available.  Other binaries may be added to the
initrd, and the script is easy to modify.  Be creative.  :-)

  -F      Use the contents of /etc/mkinitrd.conf (optional)
          If this is used in conjunction with any other options passed
          on the command line, the command-line options will override
          the config file options.  See mkinitrd.conf(5) for details.
  -c      Clear the existing initrd tree first
  -f      Filesystem to use for root partition (must be used with -r)
  --help  Display this message
  -h      Device to resume from hibernation. Needs to be the name of
          the swap partition holding the hibernation image.
  -k      Kernel version to use
  -l      Custom keymap to load. Like, 'nl' or 'de-latin1-nodeadkeys'
  -m      A colon (:) delimited list of kernel modules to load.
          Additional options may be added to use when loading the
          kernel modules (but in this case the entire list must be
          wrapped with double quotes).  Any dependencies of requested
          modules will also be added to the initrd.
  -o      Output image (default /boot/initrd.gz)
  -r      Root partition device (must be used with -f)
  -s      Initrd source tree (default /boot/initrd-tree/)
  -u      Include udev in the initrd
  -w      Time to wait until all disks are detected
  -C      A colon (:) delimited list of luks encrypted block devices to be
          unlocked by the initrd using cryptsetup. All devices that must
          be unlocked in order to access the root filesystem must be
          specified. (Use with '-r' parameter).
  -L      Add support for LVM partitions
  -K      Use a USB key (fat-formatted) to unlock the root LUKS volume
          The parameter value is filename of a keyfile, as well as the label
          (or uuid) of the partition this file is on.  This way, you can unlock
          your computer automatically if you have a USB stick with your LUKS
          key inserted at boot. A passphrase will still be asked if the LUKS
          key can not be found.
          For example, if your USB thumb drive has a FAT partition with label
          "TRAVELSTICK" and the actual keyfile is called "/keys/alien.luks",
          then you need to pass: -K LABEL=TRAVELSTICK:/keys/alien.luks
  -B      Add /sbin/btrfs to enable scanning for a root filesystem that is
          part of a Btrfs multi-device filesystem.
  -M      Add the files in /etc/modprobe.d/ and /lib/modprobe.d/ to the initrd
  -R      Add support for RAID partitions
  -V      Display version number

A simple example:  Build an initrd for a reiserfs root partition:

  mkinitrd -c -m reiserfs

Another example:  Build an initrd image using Linux 2.6.35.4-smp kernel
modules for a system with an ext4 root partition on /dev/sdb3:

  mkinitrd -c -k 2.6.35.4-smp -m mbcache:jbd:ext4 -f ext4 -r /dev/sdb3

Note that if you are already logged in with /dev/sdb3 as your /
partition, and it is running ext4, this command works just the same:

  mkinitrd -c -m ext4

If run without options, mkinitrd will rebuild an initrd image using
the contents of the  directory, or, if that directory
does not exist it will be created and populated, and then mkinitrd
will exit.

это  в Slackware  скрипт такой. На bash'е.

Fat-Zer пишет:

не initrd, а болей-менее полноценный ramdisk... оговорился... собственно кроме busybox'а и fsarchiver'а нам ничего не надо...

ну у  нас в слаке такой и есть.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

24

drBatty пишет:

ну  это initrd. Смысл прост: после  загрузки  ядра  грузится в память  файл /boot/initrd.gz  (имя может быть  другим), который является образом Linux. ОЧЕНЬ маленьким.  3,6M  у меня сейчас. Там  есть  оболочка ash  ну  и минимум утилит. 

Эммм.... Это понятно, а как его правильно слепить??

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

25

А как же через fsarchiver бекапить корень? Он ругнется на то что надо в режим read only перейти либо через ключ -A. Разве это будет верно?

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

26

XliN пишет:

А как же через fsarchiver бекапить корень? Он ругнется на то что надо в режим read only перейти либо через ключ -A. Разве это будет верно?

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

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

27 (16.11.2014 14:51:58 отредактировано 1000Mhz)

Ну да:

-A: allow to save a filesystem which is mounted in read-write (live backup)

Но! лично мне такие бекапы еще не приходилось разворачивать "обратно". Впрочем, я не считаю критичными возможные проблемы с файлами, открытыми на запись в момент бекапа корня.

diablopc пишет:

А зачем делать бэкап с основной системы???

Затем! У адекватов обычно одна ОС без всяких дуалбутов. А грузится с лайв-сд лень ab

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

28 (16.11.2014 14:51:45 отредактировано DiabloPC)

1000Mhz пишет:

Впрочем, я не считаю критичными возможные проблемы с файлами, открытыми на запись в момент бекапа корня.

X3, но рисковать не стоит....

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

29

1000Mhz пишет:

Затем! У адекватов обычно одна ОС без всяких дуалбутов. А грузится с лайв-сд лень

Ну я про свой случай, с учетом наличия дуалбута))

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

30

diablopc пишет:

Ведь его можно спокойно сделать со вторичной,

А как же ты хочешь автоматизировать этот процесс? Один раз сделать бекап из второй ОС? А честно говоря думал ты хочешь периодически его делать и когда надо откатываться.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"