From: SMTP%"carl@SOL1.GPS.CALTECH.EDU" 23-NOV-1994 08:39:11.67 To: EVERHART CC: Subj: Re: HELP - File Headers Fill up Disk From: carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick) x-newsgroups: comp.os.vms subject: Re: HELP - File Headers Fill up Disk date: 22 Nov 1994 21:33:30 GMT organization: HST Wide Field/Planetary Camera lines: 67 distribution: world message-id: <3ato3a$gip@gap.cco.caltech.edu> Reply-To: carl@SOL1.GPS.CALTECH.EDU nntp-posting-host: sol1.gps.caltech.edu To: Info-VAX@Mvb.Saic.Com x-gateway-source-info: USENET In article <3aqjql$kqf@israel-info.datasrv.co.il>, ophir@zeus.datasrv.co.il (Ophir Polotsky (SoftLink)) writes: =Well, that is right, but the problem is when you have only one disk =on your system, and you use it for both System and Data... =Then, you can not use the INIT/HEADER= command, since you are not =the one who INIT it.... That can be dealt with if your system has enough memory. No system need have only one disk: You can always create a pseudodisk (MCR SYSGEN CONNECT PDA0/NOADAPTER), then format it (code to format a pseudodisk enclosed below), initialize and mount it, create a standalone backup kit on it, then perform four backup operations: 1) Backup of the pseudodisk to tape; 2) A standalone BACKUP of your system disk to tape; 3) A standalone BACKUP/INIT using the backup of the pseudodisk; 4) A standalone BACKUP/NOINIT using the backup of your system disk. Note: This technique will work even if you don't have a bootable tape drive. You can boot standalone backup from your system disk, back up the system disk to tape, restore the backup of the pseudodisk to your system disk; then reboot standalone backup from your system disk and then restore the actual backup of your system disk. /* FORMAT_PD.C -- format a pseudodisk */ #include descrip #include iodef #include stdio #define ckstat(x) if(((stat = x) & 7) != 1) exit(stat) main(int nargs, char **args) { long size, stat; char buff[32], *sptr; $DESCRIPTOR(dev, buff); short iosb[4], chan; buff[31] = '\0'; if(--nargs > 0) sptr = *++args; else { printf("Size: "); fgets(buff, 31, stdin); sptr = buff; } sscanf(sptr,"%d", &size); if(--nargs > 0) dev.dsc$a_pointer = *++args; else { printf("Device: "); fgets(buff, 31, stdin); dev.dsc$a_pointer = buff; } dev.dsc$w_length = strlen(dev.dsc$a_pointer); while(dev.dsc$a_pointer[dev.dsc$w_length-1] == '\n') dev.dsc$w_length--; ckstat(SYS$ASSIGN(&dev, &chan, 0, 0)); ckstat(SYS$QIOW(0,chan, IO$_PACKACK, iosb, 0, 0, 0, 0, 0, 0, 0, 0)); ckstat(iosb[0]); ckstat(SYS$QIOW(0,chan, IO$_FORMAT, iosb, 0, 0, size, 0, 0, 0, 0, 0)); exit(iosb[0]); } -------------------------------------------------------------------------------- Carl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL Disclaimer: Hey, I understand VAXen and VMS. That's what I get paid for. My understanding of astronomy is purely at the amateur level (or below). So unless what I'm saying is directly related to VAX/VMS, don't hold me or my organization responsible for it. If it IS related to VAX/VMS, you can try to hold me responsible for it, but my organization had nothing to do with it.