Как сохранить таблицу разделов с самими разделами и mbr ? (Написал скрипты, но может есть другой путь ?)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

Привет всем.
Задался както сделать в линуксе то , что может Акронис, а именно сохранить таблицу разделов, mbr , и сами данные раздела затем, чтобы это все автоматом залить обратно на диск.
Вот что получились.

ScriptOfBackupPartFat32

Код: Выделить всё

devicexxx=/dev/sdx &&
parititionxxx=/dev/sdx1 &&
pathsavedpartsxxx=/home/stas/BackupFlash &&

mkdir $pathsavedpartsxxx &&
dd if=$devicexxx of=$pathsavedpartsxxx\/backupmbr.raw count=100000 &&
$DIRSTACK\/sbin/partclone.fat32 -c -d=2 -s $parititionxxx | gzip -c --best  > $pathsavedpartsxxx\/backupfat32.raw


ScriptOfRestorePartFat32

Код: Выделить всё

devicexxx=/dev/sdx &&
parititionxxx=/dev/sdx1 &&
pathsavedpartsxxx=/home/stas/BackupFlash &&

dd if=$pathsavedpartsxxx\/backupmbr.raw of=$devicexxx &&
blockdev --rereadpt $devicexxx &&
zcat $pathsavedpartsxxx\/backupfat32.raw | $DIRSTACK\/sbin/partclone.fat32 -r -o $parititionxxx &&
blockdev --rereadpt $devicexxx


c помощью partimage сохранить mbr не удалось, хотя там чтото было на эту тему

Все испытывал на загрузочной флешке

Может есть чтото более простое на эту тему ? dd отдельно не очень эффективно так как гонит в файл все без разбора. А Acronis покупать неохота.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ленивая Бестолочь »

если вам нужно fat32 сохранять, то самым разумным решинием было бы заархивировать данные чем-нибудь (cpio, tar, rar, etc)
таблицу разделов можно снять с помощью

Код: Выделить всё

 cfdisk -d /dev/sda > parts

восстановить:

Код: Выделить всё

cat parts | cfdisk /dev/sda

загрузчик можно спокойно снять dd, если задать bs и count, например.
можно и таблицу разделов заодно тоже им :)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Flaming
Сообщения: 2579

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Flaming »

Ism писал(а):
03.02.2010 01:42
Может есть чтото более простое на эту тему ? dd отдельно не очень эффективно так как гонит в файл все без разбора. А Acronis покупать неохота.

В смысле всё без разбора? Осильте опции skip и count. И ещё осильте dcfldd, там опций побольше.
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

насчет dd, то что я скопирую неизвестный кусок секторов диска, это ничего не даст, разве что если как в моем скрипте. Смысл clonepart.fat32 в том , что он копирует ТОЛЬКО реальные данные
а вот cfdisk это надо попробовать

Ленивая Бестолочь писал(а):
03.02.2010 07:38
если вам нужно fat32 сохранять, то самым разумным решинием было бы заархивировать данные чем-нибудь (cpio, tar, rar, etc)
таблицу разделов можно снять с помощью

Код: Выделить всё

 cfdisk -d /dev/sda > parts

восстановить:

Код: Выделить всё

cat parts | cfdisk /dev/sda

загрузчик можно спокойно снять dd, если задать bs и count, например.
можно и таблицу разделов заодно тоже им :)


Люди, вы скрипт читали ? Я именно это и делаю
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

cfdisk -d /dev/sda > parts


судя по man, вы мне советуете удалить таблицу разделов ???

d Delete the current partition. This will convert the current partition into free space and merge it with any free space imme-
diately surrounding the current partition. A partition already marked as free space or marked as unusable cannot be deleted.
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

возможно вы имели в виду sfdisk ?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

Ism
есть такая хреновина - "разряжённые файлы", они есть в NTFS и в EXT3 (может и ещё где-то, не знаю). Если перед использованием dd выполнить команду
cp /dev/zero /mnt/flash/zero_file || rm /mnt/flash/zero_file
все пустые области на диске будут заполнены нулями. после чего можно использовать dd. Правда я не знаю, будет ли ваша dd создавать разряжённый файл, если это не так - вы можете скопировать файл командой cp
(возможно с ключом --sparse=always)
убедиться в том, что файл разряжённый можно сравнив вывод du и ls -l

Код: Выделить всё

$ du 002.part -h
1,1G    002.part
$ ls -lh 002.part
-rw-r--r-- 1 amule users 4,3G 2010-02-03 13:18 002.part

вы видите, что файл в 4.3Гб занимает на диске чуть более 1Гб.
Такой метод "сжатия" на порядок быстрее и удобнее gzip и проч. (в подобных случаях)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

Именно так я делал, НО заполнить 60 гигов нулями да еще в ntfs из под линукса , нужно не меньше 3 часов. Это в лучшем случае !


это если dd if=/dev/zero of=/windows/C/zero.file

с cp думаю будет то же
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

Ism писал(а):
03.02.2010 14:05
с cp думаю будет то же

безусловно.
а вот в самой виндовс это не так-уж и долго...
вообще, про NTFS я не в курсе, уже давно её не использую...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

Ну удачи вам забивать нулями терабайтный винт :)
при полезной информации в 2 гига.
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение broom »

Ism писал(а):
03.02.2010 14:05
это если dd if=/dev/zero of=/windows/C/zero.file

если размер блока сделать побольше, например, 10 мегабайт (bs=10M), то будет значительно быстрее.
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

Ism писал(а):
03.02.2010 17:13
Ну удачи вам забивать нулями терабайтный винт smile.gif
при полезной информации в 2 гига.

лично я сохраняю данные, уверен, у вас там всего метра 2 :)

broom писал(а):
03.02.2010 17:26
если размер блока сделать побольше, например, 10 мегабайт (bs=10M), то будет значительно быстрее.

угу. кстати, причём тут NTFS?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ленивая Бестолочь »

Ism писал(а):
03.02.2010 12:21
возможно вы имели в виду sfdisk ?

да, конечно же, я ошибся, прошу прощения :-\
надо же так попасть в точку, нарочно не придумаешь.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

Когда у других проблемы, они обращаются к богу
Когда у меня проблемы, я обращаюсь к Гуглу. И провожу man-уальную терапию :)
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

Короче, товарищи, вот скрипты, которые делают все как надо.
Проверено на загрузочной флешке
Если какая то и команд не завершилась успешно то выполнение останавливается, (пока не завершилась предыдущая, следующая не начинается )

Бэкап

Код: Выделить всё

#!/bin/bash

devicexxx=/dev/sdx &&
parititionxxx=/dev/sdx1 &&
pathsavedpartsxxx=/home/stas/BackupFlash &&

# Создаем директорию для сохранения разделов
mkdir $pathsavedpartsxxx &&
# Сохраняем mbr
dd if=$devicexxx of=$pathsavedpartsxxx\/backupmbr.raw count=1 bs=512 &&
# Сохраняем таблицу разделов
sfdisk -d $devicexxx > $pathsavedpartsxxx\/backupparttable.raw &&
# Сохраняем данные раздела
./partclone.fat32 -c -d=2 -s $parititionxxx | gzip -c --best  > $pathsavedpartsxxx\/backupfat32.raw


Восстановление

Код: Выделить всё

#!/bin/bash

devicexxx=/dev/sdx &&
parititionxxx=/dev/sdx1 &&
pathsavedpartsxxx=/home/stas/BackupFlash &&

# Затираем нулями таблицу разделов и mbr
dd if=/dev/zero of=$devicexxx count=10000 &&
# Перечитываем устройство
blockdev --rereadpt $devicexxx &&
# Восстанавливаем таблицу разделов
sfdisk --force $devicexxx < $pathsavedpartsxxx\/backupparttable.raw  &&
blockdev --rereadpt $devicexxx &&
# Восстанавливаем данные раздела
zcat $pathsavedpartsxxx\/backupfat32.raw | ./partclone.fat32 -r -o $parititionxxx &&
blockdev --rereadpt $devicexxx &&
# Восстанавливаем mbr
dd if=$pathsavedpartsxxx\/backupmbr.raw of=$devicexxx &&
blockdev --rereadpt $devicexxx


также можно применять это для всех остальных файловых систем
качать утилиту отсюда http://partclone.org/
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

Забыл сказать.
Если кто-то вдруг решится испытать данные скрипты, просьба написать сюда о результатах

И еще, очень возможно легко убить полностью свой винт этими скриптами (если неправильно указать устройство в скрипте восстановления), так что не запускайте если не понимаете как они работают !
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

Ism писал(а):
04.02.2010 23:45
И еще, очень возможно легко убить полностью свой винт этими скриптами (если неправильно указать устройство в скрипте восстановления), так что не запускайте если не понимаете как они работают !

может проверочку вставите?
типа
"вы хотите убить все данные на диске SeaGate XXX-YYY объёмом 666Gb?"
yes or no?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

С радостью , только опять придется гуглить а времени немного
если не трудно , какой командой опрашивается ввод ?
неплохо бы еще извлечь марку диска (тика Samsung или еще чего) чтобы было удобно отличать флешку от остальных устройств.
а то я в скриптах не силен

И еще , не пойму , как сохраняют разделы остальные линуксоиды ? неужели толко dd ?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

список дисков в системе (должна быть включена русская локаль)

Код: Выделить всё

fdisk -l | sed -n 's/^Диск .*/&/p'

после чего

Код: Выделить всё

smartctl -i /dev/sda | sed -n 's/^Model .*/&/p'

что-бы узнать модель.
как читать ввод?

Код: Выделить всё

#!/bin/sh

function is_yes
{
        REPLY=""
        while [ "$REPLY" != "Yes" -a "$REPLY" != "no" ];
        do
                if [ -n "$REPLY" ]; then
                        echo "Неверный ввод, введите пожалуйста Yes или no."
                fi
                echo "Вы уверенны? (Yes/no)"
                read
        done
        [ "$REPLY" = "Yes" ] && return 0
        return 67
}

if is_yes; then
        echo "значит вы согласны"
else
        echo "ну не хотите, как хотите"
fi

exit


Ism писал(а):
05.02.2010 01:12
И еще , не пойму , как сохраняют разделы остальные линуксоиды ? неужели толко dd ?

а зачем? я бекаплю только данные. зачем мне разделы?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

А если надо сделать копию винчестера (для тиражирования на другие машины или восстановления системы)?
Спасибо сказали:
Flaming
Сообщения: 2579

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Flaming »

Ism писал(а):
06.02.2010 14:43
А если надо сделать копию винчестера (для тиражирования на другие машины или восстановления системы)?

clonezilla?
Всё хочу с ней разобраться, да как-то лень, или времени не хватает. :)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

Ism писал(а):
06.02.2010 14:43
А если надо сделать копию винчестера (для тиражирования на другие машины или восстановления системы)?

dd if=/dev/sdx of=~/image bs=по вкусу
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Flaming
Сообщения: 2579

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Flaming »

drBatty писал(а):
06.02.2010 15:46
dd if=/dev/sdx of=~/image bs=по вкусу

Этот способ не подойдёт, если компьютеров много.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

Flaming писал(а):
06.02.2010 16:46
drBatty писал(а):
06.02.2010 15:46
dd if=/dev/sdx of=~/image bs=по вкусу

Этот способ не подойдёт, если компьютеров много.

почему?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Ism »

тогда уж partclone.dd , работает как dd но значительно быстрее (какимто образом быстро определяет обнуленные сектора и обходит их )
хотя могу ошибаться, просто он в два раза быстрее сархивировал раздел и архив был точно по занятым данным

почему?


и все равно не понимаю, что за садо мазо забивать 500 гиговый винт нулями . Да еще через драйвер файловой системы
Спасибо сказали:
Flaming
Сообщения: 2579

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение Flaming »

Ism писал(а):
07.02.2010 02:01
тогда уж partclone.dd , работает как dd но значительно быстрее (какимто образом быстро определяет обнуленные сектора и обходит их )

Скорее всего он их читает, но в файл образа не записывает. К.О. подсказывает, что скорость записи на винчестеры обычно меньше скорости чтения.
Потому, как правило, при создании образа, нагрузка на винчестер (по чтению) даже не пиковая. Следовательно, пропуск нулевых секторов довольно сильно должен повысить скорость копирования.
За название утилитки спасибо, надо поискать.

drBatty писал(а):
06.02.2010 16:48
почему?

Потому что тогда эту команду нужно на каждом запустить, когда из образа нужно операционку поставить. А это весьма и весьма напряжно, если линукса там вообще не стоит, винчестер девственно чистый.
Для этих целей лучше netboot... clonezilla так и делает.
В принципе можно netboot, загрузить так любой минимальный дистрибутив линукса с dd и доступом к ssh, и через scp скопировать образ на локальную машину, на лету заливая и разжимая.
Я думаю, clonezilla именно так и делает как-то. :) Хотя может не шифрует соединение как ssh. Словом, это штука интересная, и с ней надо бы разобраться.

Беда в том, что я не могу осилить netboot.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

Ism писал(а):
07.02.2010 02:01
и все равно не понимаю, что за садо мазо забивать 500 гиговый винт нулями . Да еще через драйвер файловой системы

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

При распаковке забивать ничего не нужно, а скорость разжатия в большинстве случаев ограничивается скоростью записи на приёмник, даже для xz -9 (тут у нас есть результаты тестов).

Flaming писал(а):
07.02.2010 09:15
Потому что тогда эту команду нужно на каждом запустить, когда из образа нужно операционку поставить. А это весьма и весьма напряжно, если линукса там вообще не стоит, винчестер девственно чистый.

ну возьмите SLAX, и пропишите в startup скрипт с этой командой. делов-то...
Flaming писал(а):
07.02.2010 09:15
Беда в том, что я не могу осилить netboot.

в 90% случаев это лишнее. к тому-же это очень долго.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение pelmen »

Ism писал(а):
05.02.2010 01:12
если не трудно , какой командой опрашивается ввод ?
#!/bin/bash
OPTIONS="Hello Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
echo done
exit
elif [ "$opt" = "Hello" ]; then
echo Hello World
else
echo bad option
fi
done

Код: Выделить всё

root@gateway:~# ./test
1) Hello
2) Quit
#? 1
Hello World
#? 3
bad option
#? 2
done
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение drBatty »

pelmen писал(а):
07.02.2010 15:52
if [ "$opt" = "Quit" ]; then
echo done
exit

логичнее switch case в данном случае
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Как сохранить таблицу разделов с самими разделами и mbr ?

Сообщение pelmen »

Да, я хотел показать только
select opt in $OPTIONS; do
Спасибо сказали: