在對操作系統進行管理時,有時候當前系統本身就是操作對象。這種在運行系統中管理自己的行為是一種動態操作,似有擺脫不了操作對象干系之嫌,於是乎,人們要求一個獨立的系統環境。 UNIX Shell的情況與上述相反。對於Tu64 UNIX而言,以發行介質光碟引導出的安裝環境,可以提供UNIX Shell(或Shell 窗口)、Installation Shell。它是一個獨立的UNIX系統環境,能在安裝環境中很好的完成有關系統盤的管理任務,以及普通系統所能做的大部分工作。使用UNIX Shell時,操作對象處於靜止狀態,因此,這種操作是一種與被管理對象(操作系統)無關的獨立系統操作。 筆者認為UNIX Shell是為系統安裝管理而設,又有天生的獨立性,用它來做系統盤的克隆、仿制及系統的全備份非常合適。為了增強直觀性,避免冗長的文字敘述,我們下面列舉真實AdvFS例子來討論一下UNIX Shell的這種新應用。至於ufs, UNIX Shell的這些應用同樣適用,而且其操作比AdvFS更簡單容易。如果讀者對ufs系統盤的克隆、仿制及系統的全備份感興趣的話,無論你熟悉不熟悉AdvFS,閱讀本文都能從中悟出所需原理。
1. 克隆(Clone) 必須准備一個與原系統盤型號完全相同的磁盤。 1.1 Digital UNIX V4.0E的實例 假定,原系統盤的控制台方式設備名為dkb100:,新盤為dkb200:,發行介質光碟為dka400:。 制作克隆盤有兩種方式,一為制作備份式系統盤,另一為制作並存式系統盤。 1.1.1 制作備份式系統盤 首先談談備份式系統盤的制作,其過程與在普通環境下的制作相似,很簡單:准備一個型號規格與原先的系統盤完全一樣的磁盤,再執行帶適當選項的dd命令,就完成了。>>>boot dka400 從發行介質光碟引導系統, 點擊“UNIX Shell”,出現shell窗口。 # file /dev/rrz*c 假定,原系統盤為rz9,新盤為rz10 # disklabel -z # dd if=/dev/rrz9c of=/dev/rrz10c conv=noerror,sync bs=100k 命令執行完畢之後,取下新系統盤備用。當原系統盤出現故障時,取下故障盤,插入備用盤即可。以上是制作備份式系統盤的過程。 1.1.2! 制作並存式系統盤 # vi /etc/fstab 將/dev/rz9b改為/dev/rz10b # cd fdmns/root_domain # ls -l # rm rz9a # ln -s /dev/rz10a # cd .. # cd usr_domain # ls -l # rm rz9g # ln -s /dev/rz10g # cd /sbin # rm swapdefault # ln -s /dev/rz10b swapdefault # shutdown -h now · · · >>>boot dkb200 將克隆盤重新置回克隆時的位置,從克隆盤引導系統,以此證實新盤可用。 1. 2 Tru64 UNIX V5.1的實例 在V5.1下磁盤一旦被操作系統識別認可,其設備名就是唯一的而且不可改變的(這裡順便說一句,V5.1系統安裝之後,系統盤的SCSI-ID是可以隨意改變的,不影響其引導),所以V5.1的AdvFS系統盤克隆只能做到並存方式。 >>>show dev 假定,原系統盤的控制台方式設備名為dkb100:,而新盤為dkb200:,發行介質光碟為dka400:, >>! >boot dkb400 用光碟引導系統, 歡迎安裝(主機信息)文件Shell 窗口# #file /dev/rdisk/dsk*c 假定,原系統盤的設備名為dsk0,新盤的為dsk1, # disklabel -z dsk1 # dd if=/dev/rdisk/dsk0c of=/dev/rdisk/dsk1c conv=noerror,sync bs=100k # cd /etc/fdmns # mkdir root_domain usr_domain # cd root_domain # ls -l # ln -s /dev/disk/dsk1a # cd ../usr_domain # ln -s /dev/disk/dsk1g # cd # mount -t advfs root_domain#root /mnt # cd /mnt/etc/fdmns/root_domain # ls -l (應該顯示dsk0a/dev/disk/dsk0a) # rm dsk0a # ln -s /dev/disk/dsk1a # cd ../usr_domain # ls -l # rm dsk0g # ln -s /dev/disk/dsk1g # cd ../.. # vi sysconfigtab 將其中swapdevice=/dev/disk/dsk0b改為swapdevice=/dev/disk/dsk1b # umount /mnt # exit 主機信息文件退出# # halt >>>boot dkb200 使用新制作的克隆盤引導系統。
2. 仿制(duplicate) 首先要准備一個磁盤,其容量要等於或大於原系統盤。仿制系統盤,主要做如下幾件事: (1) 按照原先系統盤的大小配置一個新盤; (2) 為新系統創建域和文件集; (3) 為原系統創建目錄並在該目錄中建立符號鏈接; (4) 利用命令vdum,vrestore和管道完成文件集的復制; (5) 修改仿制系統中的符號鏈; (6) 修改仿制系統中的fstab文件,並更改對換區(swap)的指向 2.1 Digital UNIX V4.0E的實例 >>>show device >>>boot dka500 "Installation Setup""Install Type"中"Custom"“Partition Disks...” 按照原系統盤的各個分區大小配置新盤,配置新盤時應將多余磁盤空間配置成一個或多個分區留作他用(操作務必小心謹慎,萬萬不可對原系統盤進行配置操作!!)"UNIX Shell..." # mkfdmn /dev/rz12a root_domain1 # mkfdmn /dev/rz12g usr_domain1 # mkfset root_domain1 root # mkfset usr_domain1 usr # cd /etc/fdmns # ls # mkdir root_domain0 usr_domain0 # cd root_domain0 # ln -s /dev/rz10a # ! cd ../usr_domain0 # ln -s /dev/rz10g # mount -t advfs usr_domain0#usr /home # mount -t advfs usr_domain1#usr /mnt # vdump -0vf - /home │ vrestore -xf - -D /mnt # umount /home /mnt # mount -t advfs root_domain0#root /home # mount -t advfs root_domain1#root /mnt # vdump -0vf - /home │ vrestore -xf - -D /mnt # umount /home # cd /mnt/etc # ed fstab 將文件中的rz10b改為rz12b # cd /mnt/etc/fdmns # cd root_domain # rm rz0a # ln -s /dev/rz12a # cd ../usr_domain # rm rz10g # ln -s /dev/rz12g # cd /mnt/sbin # rm swapdefault # ln -s /dev/rz12b swapdefault # umount /mnt # exit · · · >>>boot dkb400 從仿制盤引導系統。 順便提一下,剩余磁盤分區rz12h,可以按需要做成AdvFS或UFS。 2.2 Tru64 UNIX V5.1的實例 >>>show device 原系統盤dkb200: RZ1CF-CF;新盤dkb400: RZ2ED-LS。 >>>boot dka400 ? 曬獾枷低暢龌隊滄癌鑫募鯯hell窗口# <br! ># file /dev/disk/dsk*c 顯示原系統盤RZ1CF-CF的設備名為dsk0,新盤RZ2ED-LS的設備名為dsk1 # diskconfig 按照原先系統盤各個分區的大小來配置新盤,多余的磁盤空間分配給一分區留作他用。 # mkfdmn /dev/disk/dsk1a root_domain1 # mkfdmn /dev/disk/dsk1g usr_domain1 # mkfset root_domain1 root # mkfset usr_domain1 usr # mkfset usr_domai1 var # cd /etc/fdmns # mkdir root_domain0 usr_domain0 # cd root_domain0 # ln -s /dev/disk/dsk0a # cd ../usr_domain0 # ln -s /dev/disk/dsk0g # mount -t advfs usr_domain0#usr /home # mount -t advfs usr_domain1#usr /mnt # vdump -0vf - /home │ vrestore -xf - -D /mnt # umount /home /mnt # mount -t advfs usr_domain0#var /home # mount -t advfs usr_domain1#var /mnt # vdump -0vf - /home │ vrestore -xf - -D /mnt # umount /home /mnt # mount -t advfs root_domain0#root /home # mount -t advfs root_domain1#root /mnt # v! dump -0vf - /home │ vrestore -xf - -D /mnt # umount /home # cd /mnt/etc/fdmns # ls # cd root_domain # ls -l # rm dsk0a # ln -s /dev/disk/dsk1a # cd ../usr_domain # ls # rm dsk0g # ln -s /dev/disk/dsk1g # cd ../.. # vi sysconfigtab 將swapdevice=/dev/disk/dsk0b 改為 swapdevice=/dev/disk/dsk1b # cd # umount /mnt # exit “文件”“退出”## # halt · · · >>>boot dkb400
3. 全備份(full backup) 眾所周知,V4.0E和V5.1,它們的復原工作都是在UNIX Shell下完成的,但災前備份的全備份卻是在普通系統的單用戶方式下做的。詳情請參閱有關資料(如,“Installation Guide-Advanced Topics”的第三章“The UNIX Shell")。