4 local vgname
= "sharevg"
5 local lvname
= "homelv"
8 function list_free_disks()
10 <strong>创建共享卷:</strong>下面列出了您系统上的空闲磁盘.
13 <form action = "volumes_create_sharelv.cgi" method = "post">
14 <table cellspacing="1" cellpadding="5" border="0" width="90%">
16 <td bgcolor="#ebebeb"></td>
17 <td bgcolor="#ebebeb"><strong>磁盘编号</strong></td>
18 <td bgcolor="#ebebeb"><strong>类型</strong></td>
19 <td bgcolor="#ebebeb"><strong>容量</strong></td>
20 <td bgcolor="#ebebeb"><strong>型号</strong></td>
26 dt
= get_block_devices()
28 if not dt
[d
].used
then
30 local _status
, _used
= "<font color=green>空闲</font>", ""
32 if string.sub(dt
[d
].model
,1,4) == "raid" then _type
= "磁盘阵列" end
34 _status
= "<font color=red>使用中</font>"
35 if dt
[d
].used
== "fs" then
37 elseif dt
[d
].used
== "lvm" then
39 elseif dt
[d
].used
== "raid" then
44 local _td1
= string.format([[<tr bgcolor=#c6d5a8 align="left"><td>
45 <input type="checkbox" name="devs_%d" value="%s"></td><td>%s</td>]], i
, d
, d
)
47 print("<td>".._type
.."</td>")
48 print("<td>"..dt
[d
].size
.."</td>")
49 print("<td>"..dt
[d
].model
.."</td>")
54 <input type="hidden" name=todo value="todo">
55 <input type="submit" value="创建共享卷">
56 <input type="reset" value="清除">
61 if is_vg_exist(vgname
) then
65 <strong>创建共享卷:</strong>您的系统上还没有共享卷,共享卷是有一个或多个磁盘组成的虚拟磁盘,所有共享数据都存放在这里.<a href=volumes_create_sharelv.cgi?todo=disks>创建您的共享卷</a>
70 function create_lv(qp
)
74 local success
= "<font color=green><strong>成功</strong></font><br>"
75 local conf
= "/dev/"..vgname
.."/"..lvname
.."\t"..lvmount
.."\txfs\tdefaults\t0\t0\n"
77 for k
,v
in pairs(qp
) do
78 if string.sub(k
,1,5) == "devs_" then
80 if string.find(qp
[k
], "%S+%d+") then
81 devices
= devices
.." "..qp
[k
]
83 if not do_disk(qp
[k
]) then ui_message_err("do_disk error") return
85 devices
= devices
.." "..qp
[k
].."2"
91 if string.len(devices
) == 0 then ui_message_err("请选择磁盘") return end
94 err
, ret
= myexec("sudo /sbin/pvcreate -f -y "..devices
)
95 if ret
~= 0 then ui_message_err(err
.."ret "..ret
) return else print(success
) end
98 err
, ret
= myexec("sudo /sbin/vgcreate "..vgname
.." "..devices
)
99 if ret
~= 0 then ui_message_err(err
.."ret "..ret
) return else print(success
) end
101 for v
in pairs(get_vg()) do
103 vgsize
= vg
[v
].totalpe
108 err
, ret
= myexec("sudo /sbin/lvcreate -n "..lvname
.." -l "..vgsize
.." "..vgname
)
109 if ret
~= 0 then ui_message_err(err
.."ret "..ret
) return else print(success
) end
111 print("正在格式化共享卷 ...")
112 err
, ret
= myexec("sudo /sbin/mkfs.xfs -f ".."/dev/"..vgname
.."/"..lvname
)
113 if ret
~= 0 then ui_message_err(err
.."ret "..ret
) return else print(success
) end
116 err
, ret
= myexec("sudo /bin/mount /dev/"..vgname
.."/"..lvname
.." /mnt")
117 if ret
~= 0 then ui_message_err(err
) return end
118 if ret
~= 0 then ui_message_err(err
.."ret "..ret
) return else print(success
) end
119 mywrite("/etc/fstab", myread("/etc/fstab")..conf
)
120 file_gsub("/etc/rc.conf", "USELVM=.-\n","USELVM=\"yes\"")
123 ------------------- CGI OUTPUT ---------------------
124 local qp
= ui_getqp()
125 print("<h3>共享卷管理</h3>")
128 elseif qp
.todo
== "disks" then