ocs-sr 中为镜像和设备名预留的特殊关键词
一个普通的 ocs-sr 命令是这样的:
- 保存模式: ocs-sr -q2 -c -j2 -z1p -i 2000 -p true savedisk IMAGENAME DEVICENAME
- 恢复模式: ocs-sr -g auto -e1 auto -e2 -c -r -j2 -p true restoredisk IMAGENAME DEVICENAME
在上面的例子中,“IMAGENAME”可以是 Unix 系统上的任何合法目录名称,例如 20120829-image。而“DEVICENAME”是 Linux 系统上的磁盘设备名称,例如“sda”(第一个磁盘),“sdb”(第二个磁盘)...为了让 Clonezilla 更加自动化,我们为 “IMAGENAME” 和 “DEVICENAME” 保留了一些词。 ocs-sr中的关键词是有特殊含义的,在做脚本时候,建议不以这些单词命名变量或者函数。
关于 IMAGENAME 名称
四个具有特殊含义的词 "ask_user", "autoname", "autoname-*", "autohostname", and "autoproductname".
- ask_user:
- 在保存模式下,使用“ask_user”时,对于“IMAGENAME”,ocs-sr 会让用户输入镜像名称。
- 在恢复模式下,使用“ask_user”时,对于“IMAGENAME”,ocs-sr 会弹出对话框,让用户选择镜像名称。因此,请确保您的镜像存储库中至少存在 1 个镜像目录。
- autoname:
- 此关键词“autoname”仅用于保存模式,会根据机器上网卡的 MAC 地址和日期时间自动创建镜像名称。如果没有网卡,将使用主板上的 UUID。镜像名称为:005056001101-2012-08-30-1509-img(005056001101 是 网卡“00:50:56:00:11:01”的 MAC 地址,其中“:”被删除)。
- autoname-*:
- 此关键词“autoname-*”仅用于保存模式,支持自定义自动生成镜像名称。可用的关键字有:productname, FQDN, UUID, MAC, year, date, time,month, day, hour, minute(不区分大小写,但必须全部小写或大写)。它可以是任何组合,只需以“autoname-”开头即可。如果可用的关键字不是上述任何一个,则它将显示为自身。例如,(1) autoname-fox-year-date-time-uuid 将创建一个镜像名称,例如:fox-2020-1227-2336-564d41fc-9d80-20ac-c844-bda6a392d4c6。(2) autoname-tiger-month-day-year-hour-minute 将创建一个图像名称,例如:tiger-12-31-2020-23-15。
- 此外,datefmt* 可用于分配时间,其格式为来自 “date” 命令。例如:(1) autoname-fox-datefmt%Y%m%d 将创建一个镜像名称,如:fox-20210109。(2) autoname-fox-datefmt%Y-datefmt%m%d 将创建一个镜像名称,例如:fox-2021-0109。
- autohostname
- 这个关键词“autohostname”仅用于保存模式,它会自动使用网卡的 IP 地址从 DNS 服务器获取 FQDN,然后附加日期和时间。例如,如果 IP 地址为 8.8.8.8,FQDN 为 google-public-dns-a.google.com,则镜像名称将为 google-public-dns-a.google.com-2012-08-30-1509-img。如果是专用 IP 地址,则没有可用的 FQDN,则将使用名称“autohostname-$IP”,例如 autohostname-192.168.120.2-20120830-1512-img。
- autoproductname
- 在保存和恢复模式下,当使用“autoproductname”时,对于“IMAGENAME”,Clonezilla 将使用 dmidecode 命令获取 system-manufacturer 和system-product-name,然后将它们与“-img”组合在一起。例如,系统制造商是“ASUSTeK Computer INC.”,而系统产品名称是“BM6875_BM6675_BP6375”,则镜像名称是“ASUSTeK_Computer_INC_BM6875_BM6675_BP6375-img”。因此,“autoproductname”方案是用于保存某种类型的计算机的镜像,并根据品牌类型恢复它。
关于 DEVICENAME 名称
为 DEVICENAME 保留了一些特殊含义的关键词,即“all”、“ask_user”、PTUUID、SERIALNO、PARTUUID 和 UUID:
- all:在保存或恢复模式下,当“DEVICENAME”中使用“all”时,ocs-sr 会自动找到非繁忙(未挂载)设备作为设备名称,例如 sda、sdb...(对于“savedisk”/“restoredisk”模式)或 sda1、sdb1...(对于“saveparts”/“restoreparts”模式)。当然,在恢复模式下使用它时,您必须确保卸载的磁盘/分区的数量与源镜像中的磁盘/分区数量匹配。如果数字不匹配,则执行可能会失败。
- ask_user:在保存或恢复模式下,当“DEVICENAME”中使用“ask_user”时,ocs-sr 会弹出一个对话框,要求用户输入或选择设备名称,例如 sda、sdb...(对于“savedisk/restoredisk”模式)或 sda1、sdb1...(对于“saveparts/restoreparts”模式)。
- PTUUID、SERIALNO、PARTUUID、UUID(不区分大小写,但必须全部为小写或大写):当 ocs-sr 处于保存模式时,也可以通过以下方式分配 DEVICE 名称: 对于磁盘:PTUUID 或 SERIALNO,例如 PTUUID=03c8b280-27aa-3881-aca5-9b9c66fe28c7;SERIALNO=WD-WCC2U2500581。如果 SERIALNO 中有空格,请将每个空格替换为“_”。对于分区:UUID 或 PARTUUID,例如 UUID=0b51ce79-7bc0-4111-8a40-839461a9b12f
此外,对于 ocs-sr,恢复时可以通过 serialno 指定目标磁盘。对于 ocs-onthefly,源设备和目标设备可以通过 serialno 指定。