[phpBB Debug] PHP Notice: in file /includes/db/dbal.php on line 112: Undefined array key "cached"
[phpBB Debug] PHP Notice: in file /includes/db/dbal.php on line 113: Undefined array key "normal"
[phpBB Debug] PHP Notice: in file /includes/db/dbal.php on line 114: Undefined array key "total"
AiC Форум • Просмотр темы - баккап/восстановление разбивки hdd и т.п.

баккап/восстановление разбивки hdd и т.п.

Софт для классических Amiga. AmigaOS 1.x-3.9, Morphos 1.x

Модераторы: striimii, Vinnny

баккап/восстановление разбивки hdd и т.п.

Сообщение easy_john 12 янв 2009, 19:52

Привык я, что на пц под линухом я всегда могу сделать
dd if=/dev/hda bs=512 count=63 >filename
и у меня будет баккап всего заголовка винта: мбр, партишен тейбл, бутлоадер. Ну и потом с любого лайвсиди я смогу загрузиться и вернуть все обратно, даже если что-то затерло партишены, бутлоадер слетел или еще что.
А можно ли как-то так же загрузчик/партишены (рдб?) баккапить на амиге? А то мало-ли рука промахнется и я там затру или поменяю позицию раздела случайно. Ну или еще что случиться с винтом. А то было уже один раз, вставил винт амижный в пц, там винда что-то на него записала и все, разбивки нет. Данные то на винте наверняка не пострадали, но без партишенов их восстанавливать сложно.
Последний раз редактировалось easy_john 12 янв 2009, 21:05, всего редактировалось 1 раз.
[size=80]PegasosII G4 1.0/1Gb/80Gb/Ati 9200/MorphOS unreg/Debian
a4000/PPC 233mhz/68060 50mhz/128mb/cv ppc/toccata/x-surf/kickflash/indivision/AOS3.9-4.0
a1200/PPC 200mhz/68040 25mhz/256mb/bv ppc/delfina/wifi/indivision sd+ff/AOS 3.9-4.0
a600/68000 7mhz/8mb fast/wifi/AOS 3.0[/size]
Аватара пользователя
easy_john
Менеджер
Менеджер
 
Сообщения: 4296
Зарегистрирован: 03 мар 2006, 15:24
Откуда: SPb

Re: баккап/восстановление разбивки/и т.п.

Сообщение anny 12 янв 2009, 20:29

Так же как на линуксе - хз, скорее всего нет. Но можно посмотреть в сторону GeekGadget софта (порты юниксовых утилей, я даже как то XWindow запускал у себя (т.е. прямо в окне WB) ). Возможно там есть все эти binutilsы и dd и тд. Если же нет, то есть конрктено проги по сохранению rdb в файл, по записи rdb из файла, по изменению нужного параметра в rdb (например я юзал одну из, чтобы менять boot priority в rdb. Т.е. у меня на амиге было одновременно 2 видяхи. Одна bvision, а вторая mediator/voodoo3. Для каждой видяхи была своя партиция system. И когда мне надо было грузится или с одной, или с другой, без прибегания к 2м кнопкам при перезагрузке, а в шеле вбивал нечто типа: bootchange hd0=1 hd1=0). Именно названий конкретных я сейчас не вспомню, но вот если зайти на аминет опятьже, и зделать поиск по слову RDB, то есть ReadRDB.lha, в ридми которого:

Can read an RDB (Rigid Disk Block) and save it to a file, as for backup purpose, and write it back later on the hard disk. Gives also the state of the reselection flag and all of rdb_Flags. English and French documentation

Возможно ее я и юзал. Но в целом просто пробовать надо то что понравится. Вариантов даж на аминете дофига.
anny
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1267
Зарегистрирован: 05 дек 2004, 01:22

Re: баккап/восстановление разбивки/и т.п.

Сообщение easy_john 12 янв 2009, 21:04

ага. а рдб в себе что содержит?
там есть файловые системы? а размер партиций?
[size=80]PegasosII G4 1.0/1Gb/80Gb/Ati 9200/MorphOS unreg/Debian
a4000/PPC 233mhz/68060 50mhz/128mb/cv ppc/toccata/x-surf/kickflash/indivision/AOS3.9-4.0
a1200/PPC 200mhz/68040 25mhz/256mb/bv ppc/delfina/wifi/indivision sd+ff/AOS 3.9-4.0
a600/68000 7mhz/8mb fast/wifi/AOS 3.0[/size]
Аватара пользователя
easy_john
Менеджер
Менеджер
 
Сообщения: 4296
Зарегистрирован: 03 мар 2006, 15:24
Откуда: SPb

Re: баккап/восстановление разбивки hdd и т.п.

Сообщение anny 12 янв 2009, 22:00

Там и файловые системы и размеры партиций и бутовые приоритеты и все остальное по аналогии с mbr на x86тых. Формат полный я кстати кидал в артикле про загрузку оси (где логи снупи показывающие как и что загружается). Там в самом начале речь про rdb идет. Если по русски то:

--
Если вы делаете на винте более одну или больше партиций, то автоматически будете иметь RDB (RigidDiskBlock) в котором содержится много интересной информации включая такую как:

a). сколько имеется партиций на винте
b). где находятся бутблоки этих партиций. (или один бутблок если партиция одна)
c). физическая и логическая инфа о винте
d). и тд.

Полная структура RDB описана в include/devices/hardblocks.h (осевые инклуды идущие или в NDK, или с компиляторами, или как угодно еще).

[code]
struct RigidDiskBlock {
ULONG rdb_ID; /* 4 character identifier (ID) */
ULONG rdb_SummedLongs; /* size of this checksummed structure */
LONG rdb_ChkSum; /* block checksum (longword sum to zero) */
ULONG rdb_HostID; /* SCSI Target ID of host */
ULONG rdb_BlockBytes; /* size of disk blocks */
ULONG rdb_Flags; /* see below for defines */

/* block list heads */
ULONG rdb_BadBlockList; /* optional bad block list */
ULONG rdb_PartitionList; /* optional first partition block */
ULONG rdb_FileSysHeaderList; /* optional file system header block */
ULONG rdb_DriveInit; /* optional drive-specific init code */
/* DriveInit(lun,rdb,ior): "C" stk & d0/a0/a1 */
ULONG rdb_Reserved1[6]; /* set to $ffffffff */
/* physical drive characteristics */
ULONG rdb_Cylinders; /* number of drive cylinders */
ULONG rdb_Sectors; /* sectors per track */
ULONG rdb_Heads; /* number of drive heads */
ULONG rdb_Interleave; /* interleave */
ULONG rdb_Park; /* landing zone cylinder */
ULONG rdb_Reserved2[3];
ULONG rdb_WritePreComp; /* starting cylinder: write precompensation */
ULONG rdb_ReducedWrite; /* starting cylinder: reduced write current */
ULONG rdb_StepRate; /* drive step rate */
ULONG rdb_Reserved3[5];
/* logical drive characteristics */
ULONG rdb_RDBBlocksLo; /* low block of range reserved for hardblocks */
ULONG rdb_RDBBlocksHi; /* high block of range for these hardblocks */
ULONG rdb_LoCylinder; /* low cylinder of partitionable disk area */
ULONG rdb_HiCylinder; /* high cylinder of partitionable data area */
ULONG rdb_CylBlocks; /* number of blocks available per cylinder */
ULONG rdb_AutoParkSeconds;/* zero for no auto park */
ULONG rdb_HighRDSKBlock; /* highest block used by RDSK */
/* (not including replacement bad blocks) */
ULONG rdb_Reserved4;
/* drive identification */
char rdb_DiskVendor[8];
char rdb_DiskProduct[16];
char rdb_DiskRevision[4];
char rdb_ControllerVendor[8];
char rdb_ControllerProduct[16];
char rdb_ControllerRevision[4];
ULONG rdb_Reserved5[10];
};


struct PartitionBlock {
ULONG pb_ID; /* 4 character identifier */
ULONG pb_SummedLongs; /* size of this checksummed structure */
LONG pb_ChkSum; /* block checksum (longword sum to zero) */
ULONG pb_HostID; /* SCSI Target ID of host */
ULONG pb_Next; /* block number of the next PartitionBlock */
ULONG pb_Flags; /* see below for defines */
ULONG pb_Reserved1[2];
ULONG pb_DevFlags; /* preferred flags for OpenDevice */
UBYTE pb_DriveName[32]; /* preferred DOS device name: BSTR form */
/* (not used if this name is in use) */
ULONG pb_Reserved2[15]; /* filler to 32 longwords */
ULONG pb_Environment[20]; /* environment vector for this partition */
ULONG pb_EReserved[12]; /* reserved for future environment vector */
};

[/code]

Например у меня была fastata3, и я из своего 40гигового винта зделал 10винтов по 4гига (потому как scsi.device в связи с тем какие дрова и как это все прикручено считал что это не 10 партиций, а 10 винтов).

Вот мой RDB в "первого" (если так можно сказать) винта:

[code]
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 52 44 53 4B 00 00 00 40 54 6E E4 C2 00 00 00 07 RDSK...@Tn¤‚....
00000010 00 00 02 00 00 00 00 10 FF FF FF FF 00 00 00 01 ........пппп....
00000020 00 00 00 02 FF FF FF FF FF FF FF FF FF FF FF FF ....пппппппппппп
00000030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF пппппппппппппппп
00000040 00 00 20 82 00 00 00 3F 00 00 00 10 00 00 00 01 .. '...?........
00000050 00 00 20 82 00 00 00 00 00 00 00 00 00 00 00 00 .. '............
00000060 00 00 20 82 00 00 20 82 00 00 00 03 00 00 00 00 .. '.. '........
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080 00 00 00 00 00 00 07 DF 00 00 00 02 00 00 20 81 .......џ...... _
00000090 00 00 03 F0 00 00 00 00 00 00 00 D1 00 00 00 00 ...а.......‘....
000000A0 53 54 33 34 30 30 31 36 41 20 20 20 20 20 20 20 ST340016A
000000B0 20 20 20 20 20 20 20 20 34 47 31 39 00 00 00 00 4G19....
000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

...skip zeroes...

000001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000200 50 41 52 54 00 00 00 40 62 EE 90 5A 00 00 00 07 PART...@b®_Z....
00000210 FF FF FF FF 00 00 00 01 00 00 00 00 00 00 00 00 пппп............
00000220 00 00 00 00 03 44 48 30 30 45 5F 4D 45 00 00 00 .....DH00E_ME...
...skip zeroes...

00000280 00 00 00 10 00 00 00 80 00 00 00 00 00 00 00 10 ......._........
00000290 00 00 00 01 00 00 00 3F 00 00 00 02 00 00 00 00 .......?........
000002A0 00 00 00 00 00 00 00 02 00 00 20 81 00 00 01 2C .......... _...,
000002B0 00 00 00 00 00 FF FF FF 7F FF FF FE 00 00 00 00 .....пппппо....
000002C0 53 46 53 00 00 00 00 00 00 00 00 00 00 00 00 00 SFS.............
000002D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[/code]

Т.е. глазом, по чисто ascii можно глянуть, что в этом RDB указано помимо всего прочего:

1. ST340016A
2. DH0 (моя бутовая партиция)
3. она SFS

Ну и тд. В целом чтобы совсем все точно знать (если оно надо), можно взять вот этот файлик где структуры все записаны, здампить свой rdb и байт за байтом все посчитать и проверить как оно на самом деле и тд.
anny
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1267
Зарегистрирован: 05 дек 2004, 01:22


Вернуться в Софт Classic Amiga

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

cron