PSL. User Guide. Paragon Script Language

Similar documents
HDM 2010 Workstation

DUAL OS INSTALLATION

HARD DISK MANAGER 11 / FULL FEATURES LIST. HDM 11 Professional. HDM 11 Server. Features. Virtualization. Add-on. Drive Partitioning

Drive Backup User Manual

(C) Yuriy Vinnik 2010 Published under GNU GPL License v3 or later. FINEST user manual. V 1.0

PHPoC vs PHP > Overview. Overview

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION

PHPoC. PHPoC vs PHP. Version 1.1. Sollae Systems Co., Ttd. PHPoC Forum: Homepage:

Backup challenge for Home Users

Bits, Words, and Integers

HARD DISK MANAGER 12 / FULL FEATURES LIST. HDM 12 Professional. HDM 12 Server. Features. Virtualization. Add-on. Drive Partitioning

SIMIT 7. Automatic Control Interface (ACI) User manual

makes floppy bootable o next comes root directory file information ATTRIB command used to modify name

HARD DISK MANAGER 12 / FULL FEATURES LIST. Drive Partitioning. x x x x x. x x. Data Backup & Restore. x x

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Partitioning and Formatting Reference Guide

Linux+ Guide to Linux Certification, Third Edition. Chapter 2 Linux Installation and Usage

CST Algonquin College 2

CHAD Language Reference Manual

Acronis Disk Director 11 Home. Quick Start Guide

Getting Started with Deployment Console to Deploy Clients per PXE using MAC Address Identification

bytes per disk block (a block is usually called sector in the disk drive literature), sectors in each track, read/write heads, and cylinders (tracks).

EaseUS Partition Master

CS401 - Computer Architecture and Assembly Language Programming Glossary By

3 INSTALLING WINDOWS XP PROFESSIONAL

1 Lexical Considerations

Veritas System Recovery Disk Help

Veritas System Recovery Disk Help

Paragon Exact Image. User Manual CONTENTS. Introduction. Key Features. Installation. Package Contents. Minimum System Requirements.

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression

8. Control statements

Partitioning a disk prior to Linux Installation

User Guide. Version R95. English

HARD DISK MANAGER 14 / FULL FEATURES LIST. HDM 14 Premium. HDM 14 Business. Features. Drive Partitioning. Data Backup & Restore

Scheme Quick Reference

Macrorit Partition Expert 4.3.5

Contents. Jairo Pava COMS W4115 June 28, 2013 LEARN: Language Reference Manual

The PCAT Programming Language Reference Manual

9. Elementary Algebraic and Transcendental Scalar Functions

Scheme Quick Reference

Adaptive Restore 2010

Installing and Using the Cisco Unity Express Script Editor

Partitioning and Formatting Guide

CompTIA Linux+ Guide to Linux Certification Fourth Edition. Chapter 2 Linux Installation and Usage

412 Notes: Filesystem

Programming Fundamentals

The SPL Programming Language Reference Manual

Older geometric based addressing is called CHS for cylinder-head-sector. This triple value uniquely identifies every sector.

Advanced Operating Systems

User Guide. Version 2.1

CST8207 GNU/Linux O/S I Disks and Partitions

Installation Guide-x86, x86-64

Language Reference Manual

Control Structures. CIS 118 Intro to LINUX

Lexical Considerations

Volume and File Structure of Disk Cartridges for Information Interchange

Free HFS+ for Windows

Computer Systems. Assembly Language for x86 Processors 6th Edition, Kip Irvine

UNIT IV 2 MARKS. ( Word to PDF Converter - Unregistered ) FUNDAMENTALS OF COMPUTING & COMPUTER PROGRAMMING

File System: Interface and Implmentation

DeploymentManager Ver6.6

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

The Logical Design of the Tokeniser

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Unit-II Programming and Problem Solving (BE1/4 CSE-2)

Operations On Data CHAPTER 4. (Solutions to Odd-Numbered Problems) Review Questions

egrapher Language Reference Manual

UBDR GOLD VERSION 3.0 USER GUIDE

Paragon Drive Backup 10 Corporate Versions

Volume and File Structure for Write-Once and Rewritable Media using Non-Sequential Recording for Information Interchange

Chapter 2 Working with Data Types and Operators

Operators. Java operators are classified into three categories:

How To Fix Regedit Windows Xp Installation >>>CLICK HERE<<<

File Management. Ezio Bartocci.

Compilation and Execution Simplifying Fractions. Loops If Statements. Variables Operations Using Functions Errors

A Short Summary of Javali

How To Reinstall Grub In Windows 7 Without Losing Data And Programs

B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University

Maciej Sobieraj. Lecture 1

DeploymentManager Ver6.1

Instructions For Formatting Hard Drive Windows 7 Command Prompt

DEPARTMENT OF MATHS, MJ COLLEGE

Chapter Two File Systems. CIS 4000 Intro. to Forensic Computing David McDonald, Ph.D.

Introduction. Following are the types of operators: Unary requires a single operand Binary requires two operands Ternary requires three operands

PARAGON INFRASTRUCTURE PACKAGE

EngGraph Renamer v1.0

PARAGON SYSTEM BACKUP 2009

FYSOS and the Simple File System This document pertains to and is written for the purpose of adding this file system to FYSOS found at:

FILE SYSTEM IMPLEMENTATION. Sunu Wibirama

9.2 Linux Essentials Exam Objectives

The Extended MBR (version 1.05) (dated: 01 Nov 2018) by Benjamin David Lunt Copyright (c) Forever Young Software

Full file at

Installation of Lubuntu Linux, Koha, DSpace and other software using LibLiveCD

Restoration onto different Hardware. Quick and easy system restore with O&O DiskImage

File Systems. What do we need to know?

User Manual. AOMEI Partition Assistant 6.0

Shell Start-up and Configuration Files

JME Language Reference Manual

BigFix Inspector Library

19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd

Transcription:

Paragon Technologie GmbH, Systemprogrammierung Pearl Str 1 D79426 Buggingen Germany Tel. +49 (0) 7631 360 930 Fax +49 (0) 7631 17 33 19 Internet http://www.paragondotcom.com Email: info@paragondotcom.com PSL Paragon Script Language User Guide

Table of Contents Paragon Technologie GmbH, Systemprogrammierung 1. Purpose of the Paragon Scripting language... 4 1.1. Agreements accepted in this document... 4 1.2. Elements of the PSL language... 5 1.3. General structure of the PSLprogram... 9 2. PSLlanguage command structure... 10 3. Special commands... 10 3.1. Commands of unconditional control transfer... 11 3.2. Iterations... 11 3.3. Conditional control transfer... 11 3.4. Printing... 12 3.5. User's confirmation inquiry... 12 3.6. Script debugging... 12 3.7. Running a binary file... 12 3.8. A control command of using the mode of default response messages... 12 3.9. System reboot... 12 3.10. Variable name assignment to a partition... 13 3.11. Getting an error description... 13 3.12. Procedure termination... 13 3.13. PSLprogram termination... 13 4. Global commands... 13 4.1. Disk selection... 14 4.2. Source partition selection... 14 4.3. Image file selection... 15 4.4. Disk selection for a copy operation... 16 4.5. Partition selection for a copy operation... 16 4.6. Selection cancellation... 17 4.7. Running virtual operations group... 17 4.8. Virtual operations group cancellation... 17 4.9. Turning surface check option on... 18 4.10. Block of settings definition... 18 5. Paragon partition manager commands... 19 5.1. Partition creation... 20 5.2. Partition formatting... 20 5.3. Setting partition flags... 21 5.4. Changing partition size... 21 5.5. Partition modification... 22 5.6. Partition deletion... 22 5.7. Partition wiping... 23 5.8. Partition free space clearing... 23 5.9. Disk/partition protection... 23 Paragon Script Language 2 of 39 User Guide

5.10. Partition moving... 24 5.11. Partition copying... 24 5.12. Hard disk copying... 24 6. Paragon backup commands... 25 6.1. Hard disk backup/restore operations... 25 6.2. Partition backup/restore operations... 26 6.3. Floppy drive backup/restore operations... 28 6.4. MBR backup/restore operations... 28 6.5. First track backup/restore operations... 29 7. Network commands... 30 7.1. Close network files command... 30 7.2. Check for network files presence command... 30 8. Appendix A. PSL keywords. Brief definitions... 30 9. Appendix B. Time Zones codes... 35 10. Appendix C. Operations results codes... 37 Paragon Script Language 3 of 39 User Guide

1. Purpose of the Paragon Scripting language Paragon Scripting language (PSL) is intended for running operations implemented in Paragon software products in the batch mode. The formal definition of this language can be found in the Paragon Scripting language Specification document. PSL is an interpreted higherlevel language, which allows writing programs (scripts) defining the content and the sequence of running of Paragon software products basic operations. 1.1. Agreements accepted in this document The following agreements and symbols are accepted in this document: Roman type with underlining is assigned to keywords which can be typed both in the upper and in the lower case in the user s script; expressions enclosed in angle brackets <> signify the composite elements of the language, the actual value of which should be selected by a user; optional command elements are enclosed in square brackets [ ]; command elements enclosed in curly brackets { } can repeat; enclosing expressions with numeric or Boolean values into round brackets ( ) does not change the values of those expressions. Paragon Script Language 4 of 39 User Guide

1.2. Elements of the PSL language First of all we shall define the common elements and constructions which are used in different commands. <any symbol> any printable symbol (i.e., a symbol that has the appropriate graphical image). <letter> any letter from the following list: a, b, c, d, e, f, g, h, I, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z. </> slash, a forward / or a back \ slash symbol. <name> a name represented as a continuous sequence of letters, digits, and low line _ symbols starting with a letter or the low line _ symbol. <number> a decimal or a hexadecimal signed number represented as a sequence of decimal or hexadecimal digits. In the latter case a numeric value should be prefixed with 0x. <comment> a comment which represents an arbitrary text enclosed into the /* and */ symbols. Besides, a single string comment is allowed. A single string comment should start with the // symbol and continue till the end of the string. Comments are ignored when a PSLprogram runs. <command> any PSLcommand. Each command is described in the consequent sections of this document. <variable> an arbitrary sequence of any printable symbols enclosed into double quotes ( and ). <equal> one of the following symbols of comparison: == equal,!= not equal, <> not equal. <label> a label which represents a <name> with a colon afterwards. The label is used to mark a position in a PSLprogram where we want to be able to transmit control from another position of the program. Base objects that are used by PSL commands are disks, partitions, boot sectors and image files. Hereafter is the definition of syntax for these objects. Take a note that numbering of disks and partitions on a disk starts with zero; <disk specification> a disk specification defined using one of the methods listed below: <BIOS number> a disk number obtained from BIOS (can take 0x80, 0x81, 0x82, 0x83), <linux name> a disk name according to OS Linux notation (can take hda, hdb, hdc, hdd, sda, sdb, sdc, sdd), <Paragon magic number> a Paragon magic number which has the following definition format: PARAGON <number> <drive number> a sequence number of a disk; <network disk name> a network disk name which has the following definition format: </></><host></><filename>, where <host> defines the host in the network either by an IPaddress in the common format (for example, 193.128.65.3) or by identifier in the form of a sequence of symbols, and <filename> is a disk name which uses a simple file name notation. Note. PSL allows using either ( / ) or ( \ ) symbols to write both network and local paths. Paragon Script Language 5 of 39 User Guide

<disk indicator> a disk number defined using one of the following methods: CURDISK currently selected disk. <disk specification> a disk defined with the specification. <disk indicator> + <number> a disk defined using one of the described methods and a positive offset of its number. <disk indicator> <number> a disk defined using one of the described methods and a negative offset of its number. <partition indicator> a partition number defined using one of the following methods: CURPARTITION currently selected partition. <number> a partition defined using its sequence number. <letter> a partition defined using the letter assigned to it. {<any symbol>} a partition defined using the volume label. FIRST the first partition on a disk. LAST the last partition on a disk. EXTENDED the extended partition on a disk. LARGEST the largest partition on a disk. SMALLEST the smallest partition on a disk. <partition indicator> + <number> a partition defined using one of the described methods and a positive offset of its number. <partition indicator> <number> a partition defined using one of the described methods and a negative offset of its number. LABEL = {<any symbol>} defines the volume label or the partition/disk image label; PWD = {<any symbol>} defines the access password to the archive (the disk image); Here is the definition of a very important notion the size which is an attribute of different object types used in PSL. <size operand> is the common designation of an object size. It is defined using one of the following methods: SIZEDISK (<disk indicator>) Paragon Script Language 6 of 39 User Guide

the size of the disk specified in the <disk indicator> parameter, in Kb. SIZEPARTITION (<disk indicator>, <partition indicator>) the size of the partition specified in the <disk indicator> and the <partition indicator> parameters, in Kb. SIZEFREE (<disk indicator>, <partition indicator>) the size of the free space on a partition defined using the <disk indicator> and the <partition indicator>, in Kb. SIZEUSED (<disk indicator>, <partition indicator>) the size of the used space on the partition specified in the <disk indicator> and the <partition indicator> parameters, in Kb. <digit> {<digit>} the size defined using the numeric value (a sequence of digits). <size operand> <arithmetic> <size operand> the size defined as the result of the arithmetic operation which has two operands defined using one of the following methods. <arithmetic> is one of the arithmetic operations listed below: minus sign, + plus sign, * multiplication sign, / integer division sign. <size operand> this notation is equal to (0 <size operand>) (this is a particular case of the former definition of the size as a result of a subtraction operation). <resize parameter> this is the common designation of the value of the object size changing. The value type (a unit) depends on the object type and can be set using one of the following methods: <number> a direct numeric value of either the new size of the object or the size changing, MAX the maximum possible object size (only in case if the object is a partition), MIN the minimum possible object size (only in case if the object is a partition); Hereafter is the definition of conditional expressions which are used in conditional PSLcommands of the control transfer. <clause> is a conditional expression which takes on either true or false Boolean values. Firs of all we shall define the conditional expression which can be set using one of the following methods: BOOT (<disk indicator>, <partition indicator>) a partition flag check operator; it takes on the true value if the specified partition is bootable and it takes on the false value in the opposite case. HIDDEN (<disk indicator>, <partition indicator>) a partition flag check operator; it takes on the true value if the specified partition is hidden and it takes on the false value in the opposite case. PRIMARY (<disk indicator>, <partition indicator>) a partition type check operator; it takes on the true value if the specified partition is primary and it takes on the false value in the opposite case. EXTENDED (<disk indicator>, <partition indicator>) a partition type check operator; it takes on the true value if the specified partition is extended and it takes on the false value in the opposite case. LOGICAL (<disk indicator>, <partition indicator>) Paragon Script Language 7 of 39 User Guide

a partition type check operator; it takes on the true value if the specified partition is logical and it takes on the false value in the opposite case. FAT (<disk indicator>, <partition indicator>) a file system type check operator; it takes on the true value if the specified partition is formatted as FAT file system and it takes on the false value in the opposite case. <size operand> <comparison> <size operand> the size comparison: it takes on the true value if the <comparison> condition is fulfilled with specified operand values. Otherwise it takes on the false value. <comparison> is one of the following comparison symbols: < lessthan, <= less or equal, >= greater or equal, > greaterthan, == equal,!= not equal, <> not equal. FILESYSTEM (<disk indicator>, <partition indicator>) <equal> <fs type> a file system type check operator; it takes on the true value if file system type corresponds to (or does not correspond to depends on the <equal> condition value ) the specified value. Otherwise it takes on the false value. TIME (<hour> : <minute> <day> : <month> : <year>) a time comparison operator which compares current time with specified time: if current time is less than the specified one (and this script does not run), it takes on the true value. Otherwise it takes on the false value. Here <hour> are the hours specified with a two digit whole number, <minute> are the minutes specified with a two digit whole number, <day> is the day specified with a two digit whole number, <month> is the month specified with a two digit whole number, <year> is the two digit whole number specifying two latter (junior) numbers of the year. ASK an operator of the keyboard input. When a user pushes the Y button it takes on the true value. Otherwise it takes on the false value. <error operand> <comparison> <error operand next> a comparison of two codes of the operation fulfill: it takes on the true value if the <comparison> condition is fulfilled with specified operand values. Otherwise it takes on the false value. <error operand> is the operator ERRORCODE(<number>) which takes on the error code value for the operation with the <number> number. при обратном отсчете от последней выполненной операции, Paragon Script Language 8 of 39 User Guide

and <error operand next> is either a similar operator <error operand>, or a direct error code value (refer to the complete error codes list at Appendix C). EXIST (<disk indicator>) a disk existence check operator. It takes on the true value if the disk exists. Otherwise it takes on the false value. EXIST (<disk indicator>, <partition indicator>) a partition existence check operator. It takes on the true value if the partition exists. Otherwise it takes on the false value. MOUNT (<disk indicator>, <partition indicator>) <equal> {<any symbol>} an operator which checks if the partition is mounted. It takes on the true value if the partition is mounted in the system under the specified name. Otherwise it takes on the false value. VOLUMELABEL (<disk indicator>, <partition indicator>) <equal> {<any symbol>} an operator which checks the volume label of the specified partition. It takes on the true value if the real volume label is <equal> to the specified text value. Otherwise it takes on the false value. UNKNOWN (<disk indicator>, <partition indicator>) an operator that takes on the true value if the type of the specified partition is unknown. Otherwise it takes on the false value. UNFORMATTED (<disk indicator>, <partition indicator>) an operator that takes on the true value if the specified partition is unformatted. Otherwise it takes on the false value. ERRONEOUS (<disk indicator>, <partition indicator>) an operator that takes on the true value if the specified partition is erroneous, i.e. there are some errors in the structure of MBR>EPR. Otherwise it takes on the false value. There are the following ways to write complex conditional expressions: <clause> AND <clause> the conjunction of values of two expressions. <clause> OR <clause> the disjunction of values of two expressions. NOT <clause> the inversion of an expression value, where <clause> can be defined using one of the mentioned ways including the complex conditional expression. 1.3. General structure of the PSLprogram PSL program is a text file, which consists of the sequence of PSLcommands and comments. As was already listed above, a comment may be positioned in the same line with the command, or it can be inserted as a comment block, which takes one or several strings, following each other. Also we should mention a special comment style, where the comment must be positioned in a script first string only. This comment type has the following format: #!<path to the interpreter> Paragon Script Language 9 of 39 User Guide

We list it as a comment just because this string does not contain any PSLcommand. The only thing why this string is required is to define the interpreter of this script. Such style is very common for UNIXbased systems. Each PSLcommand begins from a new line and can be preceded by a label. Structurally PSLprogram consists of main program and procedures. The beginning of the program coincides with the beginning of the file, and its end with the end of the file accordingly. There are no special operators defining the beginning and the end of the main program. Procedures are placed inside of the main program, and, therefore, each procedure must be preceded by a special operator which jumps to another position of the main program (i.e. steps over the procedure). The beginning of each procedure is identified by a label, and the end is identified by the ENDCALL keyword. This is a command, which returns the program execution to the point from which this procedure was called. 2. PSLlanguage command structure According to the PSLlanguage command functionality, they can be divided into the following groups: special commands, global commands, Paragon partition manager commands, Paragon backup commands, network commands. Special commands group includes the control transfer commands which define the logical structure of the PSLprogram, i.e. control the sequence of PSLcommands execution. Other commands of this group provide interaction with a user by means of screen output and requesting user confirmations, system reboot and also turning script debugging mode ON or OFF. Global commands themselves do not perform any special operations on disks, partitions, etc. However, they provide the execution of these operations by definition of the objects, which are going to be influenced, and, after all, execute the proper operation sequence (i.e. apply virtual operations). These operations are defined by the commands of the partition manager commands group and backup commands group. In addition to that, commands of this group allow undoing virtual operations as well as turning ON the disk/partition surface check option. Partition manager commands group consists of commands used to define partition operations, such as partition creation, formatting, resizing, deletion, etc. Backup commands group consists of commands used to define the backup operations, such as: backup/restore operations for hard/floppy disks, partitions and MBRs. Network commands group is the smallest one. It includes only two commands, and they are titled by their purpose: close network files command and check for network files presence command. Below is the description of the commands grouped according to the classification above. 3. Special commands First of all, let us give the description for the commands of this group, because it contains control transfer commands, which define the PSLprogram logical structure. Special commands group includes: Paragon Script Language 10 of 39 User Guide

Paragon Technologie GmbH, Systemprogrammierung commands of unconditional control transfer, iterations commands, conditional control transfer, print commands, command of user s confirmation inquiry, script debugging command, running a binary file command, command to turn on/off the default response messages, system reboot command, command to assign a variable name to the current partition, getting an error description command, procedure termination command, program termination command. Below is the description of each command. 3.1. Commands of unconditional control transfer There are two types of unconditional control transfer commands, having the following format: GOTO <label> defines the transition to the specified label <label>. CALL <label> defines the PSLprocedure call (transition to the specified label <label> with the return after the current call command). 3.2. Iterations Iteration command defines the execution of the commands block for all objects of the same type. The concrete type is defined for each command. There are two variants of this command: Iteration command for all hard drives FOR ALL DISKS {<command>} ENDFOR defines the execution of the commands group {<command>} for all the selected disks. Iteration command for all partitions FOR ALL PARTITIONS {<command>} ENDFOR defines the execution of the commands group {<command>} for all the selected partitions. 3.3. Conditional control transfer This command is designed to execute one of the two commands group depending on the value of the conditional expression: IF (<clause>) THEN {<command>} ENDIF [ELSE {<command>} ENDELSE] if the expression <clause> has the truevalue, the command group {<command>} of the THEN branch will be executed (i.e. commands between THEN and ENDIF), if the expression <clause> has the falsevalue, the command group {<command>} of the ELSE branch will be executed (i.e. commands between ELSE and ENDELSE). Paragon Script Language 11 of 39 User Guide

3.4. Printing This command is used to output the specified text to the screen and has the following format: PRINT {<any symbol>} where {<any symbol>} is a char sequence (text message), which has to be printed on the screen. 3.5. User's confirmation inquiry This command is a predicate and can take on either true или false depending on the value of a symbol brought from the keyboard. This command has already been described in the definition of the conditional expression <clause>. It has no parameters and is defined with the command operator: ASK waits for a keyboard input. It takes on the true value if the Y key is pressed by the user. Otherwise it takes on false. 3.6. Script debugging This command is used to turn the debug mode of the script fake execution on/off. Only script syntax is checked in this mode without the real command execution. This command has the following format: SCO ON turns the debug mode on. SCO OFF turns the debug mode off. 3.7. Running a binary file This command runs the specified executable file from the PSLscript and has the following format: EXEC FILE <name of file> transmits the binary file of the executable image, defined as <name of file>, to the OS command shell. 3.8. A control command of using the mode of default response messages This command is used to control the confirmation/denial request mode. It defines the source, which will be used to get the required parameters. This source is represented either by the keyboard or by the configuration file. If this mode is turned off, the default answers from the configuration file will be used, otherwise the user will be prompted to provide them. CONFIRM ON defines the userprompt mode. CONFIRM OFF defines the mode to use default responses. 3.9. System reboot This command is used to reboot the system. It takes no parameters and is defined by the Paragon Script Language 12 of 39 User Guide

REBOOT command. 3.10. Variable name assignment to a partition This command assigns a variable name to the current partition, but it does not work ащк free blocks. This command has the following format: SET VARIABLE <variable> where the <variable> parameter defines the variable name, used to identify the current partition. 3.11. Getting an error description This command is used to output the error description. This command has the following format: STRERROR (<number>) where <number> is the error code value, which description is to be outputted. This description can be either direct or defined as the value of the ERRORCODE (<number>) operator, representing the error code for the operation with number <number>, counted down from the last operation applied. List of the possible error codes can be viewed in Appendix A. 3.12. Procedure termination This command is the last procedure command. It returns the control from the procedure to the next point from which it was called. This command requires no parameters and is defined be keyword: ENDCALL 3.13. PSLprogram termination This command terminated the PSLprogram execution. It can be included into the main program as well as into the procedure. This command has the following format: EXIT (<number >) where <number> can be the value either of the exit code, or the direct value or the value of the ERRORCODE (<number>) operator, which represents the operation with number < number> error code, counted down from the last operation executed. 4. Global commands Global commands themselves do not perform any operations on disks, partitions, etc., but each of these operations requires previously selected objects, on which it will be performed. Therefore, disk/partition backup and restore operations require the selection of the source and target drives or partitions. This also corresponds to partition creation/formatting/deletion/resizing, etc. operations. Such selection, as well as canceling the selection made can be performed by the appropriate global commands. Other commands of this group provide the execution and undoing for virtual operations, as well as surface check for the specified object (the last operation listed is not the specific one, because it does not perform any object modifications). Global commands group includes: Paragon Script Language 13 of 39 User Guide

disk selection command, partition selection command, image file selection command, disk selection for a copy operation, partition selection for a copy operation, selection cancellation command, running virtual operations group command, virtual operations group cancellation command, command to turn the surface check option on, command to define the block of settings. Below is the description of each command of this group. 4.1. Disk selection Disk selection command is used to select a disk for further operations and has the following format: SELECT DRIVE <disk specification> SELECT DISK <disk specification> where <disk specification> option defines the hard disk one of the ways listed above. 4.2. Source partition selection Source partition selection command is used to select a partition or a free block on the disk for further operations and has the following formats: Partition selection: SELECT PARTITION <number> defines the partition selection by the number provided. SELECT PARTITION <letter> defines the partition selection by the letter <letter>, assigned to the partition. SELECT PARTITION <volume label> defines the partition selection by the volume label specified as {<any symbol>}. SELECT PARTITION FIRST defines the first partition selection. SELECT PARTITION LAST defines the last partition selection. SELECT PARTITION EXTENDED defines the extended partition selection. SELECT PARTITION LARGEST defines the partition selection, which has the maximum size. SELECT PARTITION SMALLEST defines the partition selection, which has the minimum size. SELECT PARTITION NEXT defines the selection of the next partition. SELECT PARTITION PREVIOUS defines the selection of the previous partition. SELECT PARTITION OFFSET <number> Paragon Script Language 14 of 39 User Guide

defines the partition selection using the boot sector offset number <number>, specified in sectors. SELECT PARTITION VARIABLE <variable> defines the partition selection using the value of the variable specified. SELECT PARTITION PRIMARY <number> defines the primary partition selection by the number specified. SELECT PARTITION LOGICAL <number> defines the logical partition selection using the number specified. Free block selection: SELECT FREESPACE FIRST defines the first free block selection. SELECT FREESPACE LAST defines the last free block selection. SELECT FREESPACE LARGEST defines the free block selection, which has the maximum size. SELECT FREESPACE SMALLEST defines the free block selection, which has the minimum size. SELECT FREESPACE <number> defines the free block selection by the number specified. SELECT FREESPACE OFFSET <number> defines the free block selection, using the boot sector offset <number>, specified in sectors. SELECT FREESPACE PRIMARY <number> defines the free block selection, positioned outside the extended partition, using the number <number> specified. SELECT FREESPACE LOGICAL <number> defines the free block selection inside the extended partition using the number < number> specified. 4.3. Image file selection Image file selection command is used to select/set the partition/disk image file for further operations over it and has the following format: IMG = <name_of_file> where <name of file> is a full name of the image file, which is a sequence record of 1) logical drive <drive> specification and 2) path <path> to the file, including the full directory trace and ending with the file name. Logical drive <drive> is specified by one of the following ways: <letter>:</> DOS logical drive, </><linux_name><digit>/ LINUX logical device, /HARD<number></><partition id></> common way of logical drive specification, where partition identifier <partition id> is defined as Paragon Script Language 15 of 39 User Guide

PARTN<number> where <number> is the partition number, or as PARTB<boot offset> where <boot offset> is the partition boot sector offset. </></><host></><path> network drive. A path to a file <path> is the sequence of the enclosed directories and the file name as the last element of this chain, separated by the front slash or backslash symbols. 4.4. Disk selection for a copy operation This command is used to select the drive for the further operations on the disk/partition copy and has the following format: SELECT COPY DRIVE <disk specification> SELECT COPY DISK <disk specification> where <disk specification> parameter defines the hard disk using one of available ways listed above. 4.5. Partition selection for a copy operation Partition selection for a copy operation command is used to select a partition or a free block to create a partition copy in it. This command has the following formats: SELECT COPY PARTITION <number> defines the partition by number < number > to copy to. SELECT COPY PARTITION <letter> defines the partition by letter < letter > to copy to. SELECT COPY PARTITION <volume label> defines the partition by the volume label {<any symbol>} to copy to. SELECT COPY PARTITION FIRST defines the first partition to copy to. SELECT COPY PARTITION LAST defines the last partition to copy to. SELECT COPY PARTITION EXTENDED defines the extended partition to copy to. SELECT COPY PARTITION LARGEST defines the partition with the maximum size to copy to. SELECT COPY PARTITION SMALLEST defines the partition with the minimum size to copy to. SELECT COPY PARTITION NEXT defines the next partition to copy to. SELECT COPY PARTITION PREVIOUS defines the previous partition to copy to. SELECT COPY PARTITION OFFSET <boot offset> defines the partition by the specified boot sector offset <boot offset> to copy to. SELECT COPY PARTITION VARIABLE <variable> defines the partition by the specified variable value <variable> to copy to. Paragon Script Language 16 of 39 User Guide

SELECT COPY PARTITION PRIMARY <number> defines the primary partition by number <number> to copy to. SELECT COPY PARTITION LOGICAL <number> defines the logical partition by number <number> to copy to. SELECT COPY FREESPACE FIRST defines the first free block to copy to. SELECT COPY FREESPACE LAST defines the last free block to copy to. SELECT COPY FREESPACE LARGEST defines the free block which has the maximum size to copy to. SELECT COPY FREESPACE SMALLEST defines the free block which has the minimum size to copy to. SELECT COPY FREESPACE <number> defines the free block by the specified number <number> to copy to. SELECT COPY FREESPACE OFFSET <boot offset> defines the free block by the specified boot sector offset <boot offset> to copy to. SELECT COPY FREESPACE PRIMARY <number> defines the free block outside the extended partition by the specified number <number> to copy to. SELECT COPY FREESPACE LOGICAL <number> defines the free block inside the extended partition by the specified number <number> to copy to. 4.6. Selection cancellation This command unselects all of the previously selected objects and is defined by the command word UNSELECT ALL without any parameters. 4.7. Running virtual operations group This command is used for the real execution of the virtual operations group. It has the following format: APPLY <number> defines the execution of the specified number <number> of virtual operations. APPLY ALL defines the execution of all virtual operations. 4.8. Virtual operations group cancellation This command is used to cancel the group of virtual operations (rollback). Rollback operation is applicable for these operations only before running the APPLY command listed above (i.e. before their real execution). It has the following format: UNDO <number> defines the cancellation of specified number <number> of virtual operations. UNDO ALL Paragon Script Language 17 of 39 User Guide

defines the cancellation of all virtual operations. 4.9. Turning surface check option on This command turns the current partition surface check on. It has no parameters and is defined by the single command word CHECK 4.10. Block of settings definition This command is used to define the options, which will be used as default when executing other PSLcommands. It has the following format: SETTINGS {<settings commands>} ENDSETTINGS where SETTINGS defines the beginning of the settings block, ENDSETTINGS defines the end of the settings block, {<settings commands>} defines the settings command group of separate parameters from the list below: SURFACETEST <protect disk switch> permit/prohibit the surface check. Here and in further options setting commands the < protect disk switch > key can take on one of the two following values: ON permits/turns on the appropriate option, OFF prohibits/turns off the appropriate option. VERIFY <protect disk switch> permits/prohibits the transferred data verification. COPYONETOONE <protect disk switch> permits/prohibits the sectorbysector copying mode. ALLOW64KCLUSTER <protect disk switch> permits/prohibits the 64Kb cluster size for FAT. DONOTHIDETARGET <protect disk switch> permits/prohibits hiding target primary partitions (ON unhide the partition, OFF hide the partition). COPYINSTEADOFMOVE <protect disk switch> permits/prohibits copying instead of moving for adjacent blocks. BIGDRIVES <protect disk switch> turns on/off support for drives of big capacity. COMPRESSIONLEVEL <number> defines the default compression level <number> from 0 to 9 for the backup operations. SIDAFTERDISK <protect disk switch> turns on/off the SID changer usage after disk operations. SIDAFTERPARTITION <protect disk switch> turns on/off the SID changer usage after partition operations. Paragon Script Language 18 of 39 User Guide

DEFAULTSIDCHANGER <protect disk switch> turns on/off the usage of default SID changer parameters. NODELLABEL <protect disk switch> turns on/off the user prompt of the volume label in case of partition deletion (ON do not prompt, OFF prompt the label). TIMESHIFT <number> defines the default value <number> of the time shift in minutes (in the range from 12h to +12h). OEMCODEPAGE <number> defines the default number <number> of the codepage. TIMEZONE <number> defines the code < number> for the time zone. Time zone list can be viewed in Appendix B. LANGNUMBER <number> defines the number <number> of the default language for the current codepage. SLAVECFG <protect disk switch> permits/prohibits the slave disk configuration update. NOTFORSLAVE <protect disk switch> permits/prohibits the slave disk layout refresh (ON prohibited, OFF permitted). ENABLERESTART <protect disk switch> permits/prohibits the system restart operation. ENABLEVIRTUALDB <protect disk switch> permits/prohibits virtual backup/restore operations. AUTOCONVERTTOFAT32 <protect disk switch> permits/prohibits the automatic transformation from FAT16 into FAT32. SIDPARAMSLENGTH <number> defines the default length <number> of the SID changer command line. SIDPARAMS {<any symbol>} defines the default SID changer command string {<any symbol>}. 5. Paragon partition manager commands Commands of this group are designed to perform the operations over partitions. The set of operations includes different types of partition modifications, control of partition writeprotection, partition copying. Partition manager command group consists of the following commands: partition creation command, partition formatting command, setting partition flags command, changing partition size command, partition modification command, partition deletion command, partition wiping command, partition free space clearing command, Paragon Script Language 19 of 39 User Guide

partition protection command, partition moving command, partition copying command. hard disk copying command. Each command of this group is described below. 5.1. Partition creation This command is designed to create a partition of the specified type. The free block for a new partition has to be previously selected using the source partition selection command. Partition creation command has the following format: CREATE /FS = <partition type> {<create options>} where option FS defines the type of the partition in the <partition type> parameter value, which can take on one of the following values: FAT, FAT32, HPFS, LINUXEXT2, LINUXSWAP, NTFS, EXTENDED, UNFORMATTED. <create options> a list of the following possible options of partition creation: /LABEL defines the volume label for a partition to be created, /SIZE = <number> defines the size for a partition to be created (in Kb), /POSITION = BEGINNING defines the alignment with the beginning of the free space where the partition is to be created, /POSITION = END defines the alignment with the end of the free space where the partition is to be created. 5.2. Partition formatting This command is designed to format the current partition. The partition has to be previously selected using the source partition selection command. Partition formatting command has the following format: FORMAT <format specification> /FS = <fs type> {<format options>} where <format specification> an additional partition specification confirming our decision to format the partition loosing all the data on it. It is defined either by the volume label of the partition {<any symbol>}, or by the NO NAME value if the partition has no volume label or by UNKNOWN value if the file system type of the partition is unknown. the FS option defines the type of the resulting file system in the <fs type> parameter, which can take on one of the following values: FAT, FAT32, HPFS, LINUXEXT2, LINUXSWAP, NTFS, LINUXSWAP2. <format options> a list of the following possible options of partition formatting: /LABEL defines the volume label for a partition to be formatted, /CLUSTER = <number> Paragon Script Language 20 of 39 User Guide

defines the cluster size in sectors for a partition to be formatted, /ROOT = <number> defines the size of the root folder in sectors, /BOOT = <number> defines the size of the boot record in sectors. 5.3. Setting partition flags Commands of this group are designed to set the according flag for the current partition. The partition has to be previously selected using the source partition selection command. Setting partition flags command can be defined by one of the following ways: HIDE sets the hide flag for the partition, UNHIDE resets the hide flag for the partition, SET ACTIVE sets the active flag for the partition, SET INACTIVE resets the active flag for the partition. 5.4. Changing partition size This command is designed to change the size/bounds of the current partition. The partition has to be previously selected using the source partition selection command. Changing partition size command has the following format: RESIZE <resize parameter> [/CLUSTERSIZE = <cluster size>] where <resize parameter> a parameter defining the new size of the partition; CLUSTERSIZE an option that allows setting a new cluster size <cluster size> for the partition. It can take on one of the following values: 512, 1, 2, 4, 8, 16, 32, 64. RESIZE LARGER <resize parameter> [/CLUSTERSIZE = <cluster size>] is similar to the previous command except for the numerical value of <resize parameter> parameter which defines the size of the partition increment instead of the final value of the partition size; RESIZE LEFT BOUNDARY <resize parameter> defines the change of the extended partition size by shifting the left boundary. At that the value of the <resize parameter> parameter defines the new partition size in the following way: MAX defines the maximum possible shift of the boundary to the left (i.e. the maximum partition size), MIN defines the maximum possible shift of the boundary to the right (i.e. the minimum partition size), the numeric value defines the final position of this boundary in Kb; RESIZE LEFT BOUNDARY LARGER <resize parameter> defines the increase of the extended partition size by shifting the left boundary position to the left, at that the numeric value of the <resize parameter> parameter defines the increase value in Kb; RESIZE LEFT BOUNDARY SMALLER <resize parameter> Paragon Script Language 21 of 39 User Guide

defines the decrease of the extended partition size by shifting the left boundary position to the right, at that numeric value of the <resize parameter> parameter defines the decrease value in Kb; RESIZE SMALLER <resize parameter> [/CLUSTERSIZE = <cluster size>] defines the decrease of the partition size (by shifting its right boundary position to the left), at that the numeric value of the <resize parameter> parameter defines the decrease value in Kb; RESIZE SPACE AFTER <resize parameter> [/CLUSTERSIZE = <cluster size>] defines the change of the partition size by definition of the size of the free space, which should be left when the operation is completed; RESIZE SPACE BEFORE <resize parameter> defines the change of the partition size by definition of the size of the free space, which should be left before the partition itself when the operation is completed. 5.5. Partition modification This command is designed to change different attributes of the current partition. The partition has to be previously selected using the source partition selection command. This command has the following format: CONVERT TO FAT defines the transformation of FAT32 or NTFSpartition into FAT; CONVERT TO FAT32 defines the transformation of FAT or NTFSpartition into FAT32; CONVERT TO HPFS defines the transformation of FATpartition into HPFS; CONVERT TO NTFS defines the transformation of FATpartition into NTFS; CONVERT TO PRIMARY defines the transformation of a logical partition into a primary one; CONVERT TO LOGICAL defines the transformation of a primary partition into a logical one; RESIZE ROOT <resize parameter> define the new number of elements in the root folder of a FATpartition; RESIZE BOOT <resize parameter> defines the new the number of sectors in the boot record; RESIZE CLUSTER <resize parameter> defines the new number of sectors per cluster; LABEL/SETLABEL = {<any symbol>} defines the new volume label for the selected partition. 5.6. Partition deletion This command is designed to delete the current partition. The partition has to be previously selected using the source partition selection command. This command has the following format: Paragon Script Language 22 of 39 User Guide

DELETE <delete option> where <delete option> is one of the following possible values of the delete partition option: NO NAME if the partition does not have a label, LINUXSWAP if the partition is a Linux swap one, UNKNOWN if the partition cannot have a label for some reason, {<any symbol>} is the volume label of the partition to be deleted. 5.7. Partition wiping This command is designed to fill a partition with the specified fragment. The partition has to be previously selected using the source partition selection command. This command has the following format: WIPE {<wipe options>} where <wipe options> is the list of the following wiping options: MASK = <number> defines the mask to fill the space of the partition with, PASS = <number> defines the number of passes to wipe the partition, PERCENTS = <number> defines the size of the partition in percents to verify after wiping (from 0 up to 100). 5.8. Partition free space clearing This command is designed to fill the free space of the partition with the specified fragment. The verification of the result is enabled. This command has the following format: CLEAR {<wipe options>} 5.9. Disk/partition protection This command is designed to set/reset the drive (partition) writeprotection. The partition has to be previously selected using the source partition selection command. This command has the following format: SET DRIVE READ ONLY MODE <protect disk switch> sets/resets the drive protection by turning the readonly access mode on/off (ON sets the protection, OFF resets the protection). PROTECT PARTITION FIRST sets the writeprotection for the first partition (the protection is invalid for free blocks). PROTECT PARTITION LAST sets the writeprotection for the last partition (the protection is invalid for free blocks). PROTECT PARTITION sets the writeprotection for the selected partition (the protection is invalid for free blocks). UNPROTECT PARTITION FIRST resets the writeprotection for the first partition. UNPROTECT PARTITION LAST resets the writeprotection for the last partition. Paragon Script Language 23 of 39 User Guide

UNPROTECT PARTITION resets the writeprotection for the selected partition. 5.10. Partition moving This command is designed to move the selected partition. The partition has to be previously selected using the source partition selection command. Partition moving is performed within the adjacent free blocks which presence and sizes impose the restrictions on the possible value and direction of moving as well as on the possibility of the partition size change while moving. The direction of moving and the size correction are defined with the command name and parameters. This command has the following format: MOVE LEFT <resize parameter> moves the selected partition to the left, at that <resize parameter> defines the partition size change, MOVE RIGHT <resize parameter> moves the selected partition to the right, at that <resize parameter> defines the partition size change, MOVE SPACE BEFORE <move parameter> moves the selected partition to the right. <move parameter> can take on one of the following values: MAX defines the maximum possible moving to the right, <number> defines the real value in sectors for moving to the right. MOVE SPACE AFTER <move parameter> moves the selected partition to the left. <move parameter> is similar to that of the previous command. 5.11. Partition copying This command is designed to copy the selected partition. The source partition has to be previously selected using the source partition selection command and the target one has to be selected using the partition selection for a copy operation. This command has the following format: COPY [AUTORESIZE] copies one partition into another; optional parameter AUTORESIZE states that the target partitions must fill up all available space. 5.12. Hard disk copying This command is designed to copy the contents of the selected hard disk onto the specified target hard disk. The source partition has to be previously selected using the disk selection command and the target one has to be selected using the disk selection for a copy operation. This command has the following format: COPYDISK {<copy disk options>} where {<copy disk options>} is the list of the following possible options: NO_FREESPACES ignores free blocks when copying. PROPORTIONAL <resize parameter> Paragon Script Language 24 of 39 User Guide

defines the proportional partition size change according to the <resize parameter> value during the copy: MAX defines the partition expansion to the maximum, MIN defines the partition reduction to the minimum, the numeric value defines the partition size change within the specified value. 6. Paragon backup commands Commands of this group are designed to perform the operations of backing hard/floppy disks data, partitions, first tracks and boot records up into the archive (i.e. into the image file) as well as the operations of restoration of the listed objects from the specified image file. Backup command group consists of the following commands: Hard disk backup/restore operations, Partition backup/restore operations, Floppy disk backup/restore operations, MBR backup/restore operations, First track backup/restore operations. The description for each of these commands is listed below. 6.1. Hard disk backup/restore operations Hard disk backup operation is designed to store the contents of the hard disk into the image file with the ability of further restoration. Hard disk backup command is compound. It includes the command of selecting any hard disk partition, the command of definition of backup options and the command to store the selected objects into the image file, which must be previously defined using the IMG command. Hard disk backup command has the following format: SELECT PARTITIONS ALL where [OPTIONS <store options> {<store options>}] STORE SELECT PARTITIONS ALL a command which selects all of the hard disk partitions to be stored in the image file, OPTIONS <store options> {<store options>} a command which defines the block of storing options, where <store options> is the list of the following available options: SSO defines the storing only of system structures folders structures without the files contents (Store Structures Only). It should help to deal with the problems of disk backup/restore operations reported by remote users. CMP = <compression level> defines the image files compression level, where <compression level> is the compression level degree expressed by a digit from 0 to 9 (including the limits), i.e. from the total absence of compression till its maximum accordingly, MFS = <number> defines the maximum image file size (in Kb). When it is exceeded the sequence of image files is generated. The size of each file is limited by the <number> value, Paragon Script Language 25 of 39 User Guide

PWD sets the password for the archive (disk image) being generated, CAS defines the sectorbysector copy. In this case all partition data including deleted files is stored, LABEL defines the archive (disk image) label. STORE starts the process of storing partitions into an image file. Hard disk restore operation is designed to restore the contents of hard disk from an image file. Hard disk restore command is compound. It includes the command of deleting all partitions on the target drive, the command of selecting all objects stored in the image file, the command to define the restore options and the command to restore all disk partitions from the image file. Hard disk image file must be previously defined using the IMG command. Hard disk restoration command has the following format: DELETE ALL SELECT IMAGE ALL [OPTIONS <restore options> {<restore options>}] RESTORE where DELETE ALL a command to delete all partitions on the target drive, SELECT IMAGE ALL a command to select images of all objects stored in the archives (disk image file), OPTIONS <restore options> {<restore options>} a command which defines the block of restore options, where <restore options> is the list of the following available options: CBS check for bad sectors (Check for Bad Sectors), PWD sets the archive (disk image) access password, RAV <equal> <number> write verification, where <number> is the limiter of the verifications number (it is required only for compatibility with PowerQuest scripts syntax and is ignored in PSL). RESTORE starts the process of objects restoration from the image file. All data stored in it is restored into the specified free block. 6.2. Partition backup/restore operations Partition backup operation is designed to store the contents of partition into an image file with the ability of further restoration. Partition backup command is compound. It includes the command of partition selection, the command of definition of backup options and the command to store the selected partition into the image file, which must be previously defined using the IMG command. Partition backup command has the following format: {<select partition>} [OPTIONS <store options> {<store options>}] STORE where {<select partition>} a list of commands to select partitions to backup, Paragon Script Language 26 of 39 User Guide