Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

AlphaVM, Backup's saveset maped to a disk device ... How to ?!

 
SOLVED
Go to solution
Ruslan R. Laishev
Super Advisor

AlphaVM, Backup's saveset maped to a disk device ... How to ?!

Hi All!

 

I have tried to get an access to the .BCK files (Backup saveset) from AlphaVM-free instance running OVMS/Alpha 8.4. So, I configured AlphaVMS disk2 as OS file alpha-sys.bck (it's a real VMS's Backlup savet set).

So, at the time I can

$MOUNT/FOR DKA200:

$DUMP DKA0

Dump of device DKA200: on 26-SEP-2016 12:28:58.79

Logical block number 0 (00000000), 512 (0200) bytes

00000000 00000000 00000000 00000000 00000000 00000001 00010001 08000100 ................................ 000000
422E4B43 422D5359 532D4148 504C4111 00000000 00007E00 E295EA8E 00010101 .....Й.Б.~.......ALPHA-SYS-BCK.B 000020
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00004B43 CK.............................. 000040
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000060
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000080
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000A0
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000C0
4B760000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ..............................vK 0000E0
2D535953 2D414850 4C410001 00110101 00000000 00000000 00000000 000100F0 П.....................ALPHA-SYS- 000100
4F4E283D 45524F4E 47492F45 47414D49 2F4B4341 42000200 464B4342 2E4B4342 BCK.BCKF...BACK/IMAGE/IGNORE=(NO 000120
4148504C 41204543 49564544 53595324 53595320 294C5245 544E492C 4B434142 BACK,INTERL) SYS$SYSDEVICE ALPHA 000140
20202020 56454853 49414C00 04000C45 5641532F 4B43422E 4B43422D 5359532D -SYS-BCK.BCK/SAVE....LAISHEV 000160
56000800 04080000 07000200 B0B6882F 72D37700 06000800 01000500 05000420 ............wсr/.І╟...........V 000180
47442431 245F000B 000B8000 0000000A 00043A3A 34565444 5F000900 07342E38 8.4...._DTV4::............_$1$DG 0001A0
42000F00 02000A00 0E000200 007E0000 0D000434 2E385600 0C00043A 32333741 A732:....V8.4.....~............B 0001C0
00000000 00000000 00000100 11000220 20202020 20202020 20202000 10000C0A ..... ............... 0001E0
$

to the screen, and see that real block from the save set is displayed, but cannot do something useful like

BACKUP /list DKA200: /save

did not produced expected result, I see only I/O count grow permanently.

 

So, any advice ?

The primary target is the restore system disk to the a yet another viruoal drive (.vdisk).

 

 

 

Thanks!

14 REPLIES 14
H.Becker
Honored Contributor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

BACKUP-F-NOHOMEBLK, no valid home block found on ... ?

As far as I understand, a save set is always a file, to access the file it has to be either on a disk or a tape. What you tried was to point backup/list to the (raw) data of the save set. That is not supposed to work.

What you can do, is to copy the raw data into a file, like

$ copy dka200:*.* x.bck


You will see warnings like

%COPY-W-INCOMPAT, DKA200:[].; (input) and USER$DISK:[USER]X.BCK;1 (output) have incompatible attributes
%COPY-E-READERR, error reading DKA200:[].;
-RMS-F-RER, file read error
-SYSTEM-F-ILLBLKNUM, illegal logical block number
%COPY-W-NOTCMPLT, DKA200:[].; not completely copied
%COPY-W-NOTCMPLT, DKA200:[USER].; not completely copied
$

Then a

$ backup/list/repair x.bck/sav

should work.

I know, this - another copy of the saveset - is what you want to avoid.

On the other hand, where is the system disk which you want to clone? Very likely on a real Alpha, otherwise you would have copied the "vdisk". Again, as far as I know, there is no special "vdisk" format. If you have enough disk space on the source system I would create a container file, ld device, do an image backup from the system disk to the ld device and copy the container file to the AlphaVM host system.

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

Hi!

Thanks for the response!

.VDISK is a file-container has been produced by windoze DiskPart utility , so containers has been used by some other VMs like VirtualBox and VMWare ...

Yeah, I have tried to avoid manipulation with  huge files (50+ GB), so I thinking that using MOUNT/FOR and access to the DKA as non-structured block-oriented device can be handled by BACKUP.

I'll try to get something useful with COPY ... but I thhink that record-oriented copiing will be a root of problem, it need to find way to performing block-oriented copy with restoring RMS attributes of the resulted .BCK file.

Thanks!

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

BACKUP-F-NOHOMEBLK, no valid home block found on ... ?

No, 

BACKUP DKA200: /SAVE [...] did not produce any output at all, I can only see something by pressing Control-T

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

Dump of device DKA200: on 26-SEP-2016 12:28:58.79

Logical block number 0 (00000000), 512 (0200) bytes

00000000 00000000 00000000 00000000 00000000 00000001 00010001 08000100 ................................ 000000
422E4B43 422D5359 532D4148 504C4111 00000000 00007E00 E295EA8E 00010101 .....Й.Б.~.......ALPHA-SYS-BCK.B 000020
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00004B43 CK.............................. 000040
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000060
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000080
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000A0
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000C0
4B760000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ..............................vK 0000E0
2D535953 2D414850 4C410001 00110101 00000000 00000000 00000000 000100F0 П.....................ALPHA-SYS- 000100
4F4E283D 45524F4E 47492F45 47414D49 2F4B4341 42000200 464B4342 2E4B4342 BCK.BCKF...BACK/IMAGE/IGNORE=(NO 000120
4148504C 41204543 49564544 53595324 53595320 294C5245 544E492C 4B434142 BACK,INTERL) SYS$SYSDEVICE ALPHA 000140
20202020 56454853 49414C00 04000C45 5641532F 4B43422E 4B43422D 5359532D -SYS-BCK.BCK/SAVE....LAISHEV 000160
56000800 04080000 07000200 B0B6882F 72D37700 06000800 01000500 05000420 ............wсr/.І╟...........V 000180
47442431 245F000B 000B8000 0000000A 00043A3A 34565444 5F000900 07342E38 8.4...._DTV4::............_$1$DG 0001A0
42000F00 02000A00 0E000200 007E0000 0D000434 2E385600 0C00043A 32333741 A732:....V8.4.....~............B 0001C0
00000000 00000000 00000100 11000220 20202020 20202020 20202000 10000C0A ..... ............... 0001E0
$ back /list /repa dka200: /save
Listing of save set(s)

SYSMAN::SYSTEM 13:46:34 BACKUP CPU=01:40:04.01 PF=4938 IO=40057204 MEM=268
SYSMAN::SYSTEM 13:46:46 BACKUP CPU=01:40:07.82 PF=4938 IO=40117086 MEM=268
SYSMAN::SYSTEM 13:46:49 BACKUP CPU=01:40:08.99 PF=4938 IO=40135493 MEM=268
SYSMAN::SYSTEM 13:46:52 BACKUP CPU=01:40:09.92 PF=4938 IO=40149260 MEM=268
SYSMAN::SYSTEM 13:46:54 BACKUP CPU=01:40:10.75 PF=4938 IO=40164872 MEM=268
SYSMAN::SYSTEM 13:46:57 BACKUP CPU=01:40:11.85 PF=4938 IO=40188069 MEM=268
Interrupt

$ back /list dka200: /save
Listing of save set(s)

SYSMAN::SYSTEM 13:47:11 BACKUP CPU=01:40:12.73 PF=5107 IO=40200074 MEM=254
SYSMAN::SYSTEM 13:47:13 BACKUP CPU=01:40:13.52 PF=5107 IO=40208243 MEM=254
SYSMAN::SYSTEM 13:47:15 BACKUP CPU=01:40:14.10 PF=5107 IO=40215007 MEM=254
SYSMAN::SYSTEM 13:47:17 BACKUP CPU=01:40:14.89 PF=5107 IO=40225746 MEM=254
SYSMAN::SYSTEM 13:47:19 BACKUP CPU=01:40:15.45 PF=5107 IO=40234836 MEM=254
SYSMAN::SYSTEM 13:47:21 BACKUP CPU=01:40:16.13 PF=5107 IO=40246571 MEM=254
Interrupt

$ sho dev dka200: /full

Disk SYSMAN$DKA200:, device type EmuVM HD image, is online, allocated,
deallocate on dismount, mounted foreign, file-oriented device, shareable,
available to cluster, error logging is enabled.

Error count 0 Operations completed 39526861
Owner process "SYSTEM" Owner UIC [SYSTEM]
Owner process ID 0000009A Dev Prot S:RWPL,O:RWPL,G:R,W
Reference count 2 Default buffer size 512
Current preferred CPU Id 0 Fastpath 1
Total blocks 38325484 Sectors per track 78
Total cylinders 6220 Tracks per cylinder 79

Volume label "" Relative volume number 0
Cluster size 0 Transaction count 1
Free blocks 0 Maximum files allowed 0
Extend quantity 0 Mount count 1
Mount status Process ACP process name ""

Volume Status: Unknown ACP type.

$

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

May be I can restore with  Backup API ? What you think ?

H.Becker
Honored Contributor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

> BACKUP DKA200: /SAVE [...] did not produce any output at all, I can only see something by pressing Control-T

What do I know, I would have expected backup to look for a valid home block. A backup/list should give you the summary information almost immediately. And then, together with /LIST you can try /ANALYZE, which may show what backup is trying to do. But I have to agree, I didn't try this, here.

Anyway, it's not obvious to me what you are trying to achieve.

>>> The primary target is the restore system disk to the a yet another viruoal drive (.vdisk).

I interpreted this as you want to make an existing VMS system disk available to the AlphaVM. OK, I may be wrong.

You do have a save set with an image backup of the system disk and you want to restore that to a VMS disk on the AlphaVM, right?

To me it seems here you can't avoid some copying. Either in VMS from the foreign mounted device or on the host system, where I would try to create an ISO 9660 image file, including just the save set file. Then I would configure AlphaVM to use the ISO file as CDRom device. In VMS I would mount the CDROM with /UNDEFINED_FAT=FIXED:NONE:32256 and access the save set file. Again, I didn't try it, but that's what I understand what you are trying to do and what could work.

Edit: As I said, I didn't try to create an ISO file and thinking about the size of the save set it may not be worth the time to try it. The intend was to create a container file on the AlphaVM host, which is readable from VMS.

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

I have not an access to the VMS system to performs with the disk images anything. I have only backup save sets.

Let me imagine the situation with some more words. I made image backup from real VMS system. This cluster system was eliminated by fkng marketoids an so on ...

So I trying to build  a part of environment by using AlphaVM.

I installed VMS to a small virtual .vdisk.

Booted from it.

Created a big .vdisk for a new system disk (which I want to create by restoring from .BCK ).

Mapped .bck file to the DKA200: ...

A rest of the history u can see at begin of the post.

H.Becker
Honored Contributor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

I don't have such big save sets. So I could do only limited testing. I created a small image backup save set, created a small ISO file containing it and on VMS mounted the "ISO file" with /UNDEFINED_FAT as described: backup lists the contents of the save set.  Then I tried to mount a 4GB "ISO" file, which actually is a Linux distribution DVD: VMS happily mounts it as a "CDROM". So it may work to create an ISO file with your 50+GB save sets and mount/access them from VMS as well.

The other option seems to be to copy the file from the AlphaVM host to VMS, for example with ftp.

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

Thanks!

 

FTP, SFTP and FTPS implementaion by HP/Process Software cannot transfering so big files, so, I have wrote a small utility to performs transferring huge files with resume broken downloads? multistreaming, CRC-checking and so on ... I keep in mind that I can download into the VMS system the saveset by the same way. But ... why I cannot get something useful from the BACKUP ?! :-)

Volker Halle
Honored Contributor
Solution

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

Ruslan,

what you need to do with the data from your .VDISK is: write a program to READ from that (foreign-mounted) disk (block by block or better 63. blocks at a time) and write the output buffers to a NEW FILE on another mounted disk (use the same file/record attributes as the original image-backup saveset, i.e. fixed-length 32256 byte records). Then you have a valid BACKUP saveset, from which you can restore the original disk.

Volker.

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

It's what I doing right now ... :-) 

Thanks!

 

H.Becker
Honored Contributor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

There is already such a tool, it is called COPY. As shown, it prints some messages but does the job. And yes, you can create the new file with the expected record attributes, but BACKUP has a /REPAIR qualifier, which will change/adjust the attributes as necessary.

Don't ask me, why BACKUP can't read raw save set data. It seems it was always the case. It seems it expects a file. Same for writing a save set. Did you ever try to use the PIPE command and write a backup save set into a pipe to use a ZIP utility to compress from the pipe? It doesn't work because BACKUP expects a file, here an RFA to position in the output file - the save set.

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

Hi !

Just to keep ya is informed, follows piece of code (stolen from Hoff' text stuff, and reformated) work nice for me.

I discovered a yet another problem with my backup save sets, they has been "broken" in the middle of save set file - but it's a yet another story. I have tried to undesrstand how to recovery ... Will take a know.

 

 

 

 

 

 

 

 

 

 

 

 

 

#include        <starlet.h>
#include        <descrip.h>
#include        <rms.h>
#include        <lib$routines.h>


$DESCRIPTOR     (srcdev_dsc,    "_DKA200:");
$DESCRIPTOR     (dstfile_dsc,   "ZZ.BCK");


notlib_copy(struct dsc$descriptor *inp_file, struct dsc$descriptor *out_file)
{
struct FAB inp_fab, out_fab;
struct RAB inp_rab, out_rab;

char buffer[32256];
long stat;

        inp_fab = cc$rms_fab;
        inp_fab.fab$b_fac = FAB$M_BIO | FAB$M_GET;
        inp_fab.fab$l_fna = inp_file->dsc$a_pointer;
        inp_fab.fab$b_fns = inp_file->dsc$w_length;
        inp_fab.fab$l_fop = FAB$M_SQO;
        inp_fab.fab$b_shr = FAB$M_SHRPUT | FAB$M_UPI;

        if ( !(1 & (stat = sys$open(&inp_fab))) )
                lib$signal(stat, inp_fab.fab$l_stv);

        inp_rab = cc$rms_rab;
        inp_rab.rab$l_fab = &inp_fab;
        inp_rab.rab$l_rop = RAB$M_BIO;

        if ( !(1 & (stat = sys$connect(&inp_rab))) )
                lib$signal(stat, inp_rab.rab$l_stv);


        out_fab = cc$rms_fab;
        out_fab.fab$b_fac = FAB$M_BIO | FAB$M_PUT;
        out_fab.fab$l_fna = out_file->dsc$a_pointer;
        out_fab.fab$b_fns = out_file->dsc$w_length;
        out_fab.fab$w_ifi = 0;
        out_fab.fab$b_shr = FAB$M_SHRPUT | FAB$M_UPI;

        if( !(1 & (stat = sys$create(&out_fab))) )
                lib$signal(stat, out_fab.fab$l_stv);


        out_rab = inp_rab;
        out_rab.rab$l_fab = &out_fab;
        out_rab.rab$w_isi = 0;

        if ( !(1 & (stat = sys$connect(&out_rab))) )
                lib$signal(stat, out_rab.rab$l_stv);


        inp_rab.rab$l_ubf = out_rab.rab$l_rbf = buffer;
        inp_rab.rab$w_usz = sizeof(buffer);

        while (1)
                {
                if( !(1 & (stat = sys$read(&inp_rab))) && (stat != RMS$_EOF) )
                        {
                        lib$signal(stat, inp_rab.rab$l_stv);
                        break;
                        }
                else if (stat == RMS$_EOF )
                        {
                        stat = RMS$_NORMAL;
                        break;
                        }
                else    {
                        out_rab.rab$w_rsz = inp_rab.rab$w_rsz;

                        if ( !(1 & (stat = sys$write(&out_rab))) )
                                {
                                lib$signal(stat, out_rab.rab$l_stv);
                                break;
                                }
                        }
                }

        sys$close(&inp_fab);
        sys$close(&out_fab);

        return stat;
}


int     main    (int argc, char argv[])
{
        return  notlib_copy(&srcdev_dsc, &dstfile_dsc);
}
$

 

Ruslan R. Laishev
Super Advisor

Re: AlphaVM, Backup's saveset maped to a disk device ... How to ?!

Hi !

In order to keep informed ...

I have resolved a problem with restoring from damaged BACKUP save sets.  May be someone will found it's useful:

 

http://185.74.221.217:8080/~laishev/WORK/UNBACKUP/*.*

http://185.74.221.217:8080/~laishev/WORK/UNBACKUP/*unba*.*

http://185.74.221.217:8080/~laishev/WORK/UNBACKUP/UNBACKUP.C - main module.