Add repartition logic

This commit is contained in:
Yue Zhang
2014-12-10 00:08:44 +08:00
parent ecb2b9f10b
commit bcbbf38d9f
2 changed files with 48 additions and 6 deletions
Executable
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env python
#
# Windows Azure Linux Agent
#
# Copyright 2014 Microsoft Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Implements parts of RFC 2131, 1541, 1497 and
# http://msdn.microsoft.com/en-us/library/cc227282%28PROT.10%29.aspx
# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx
#
import urllib2
import shutil
import imp
if __name__ == '__main__':
account = 'yuezh'
agentUri = ('https://raw.githubusercontent.com/{0}/'
'WALinuxAgent/2.0/waagent').format(account)
response = urllib2.urlopen(agentUri)
html = response.read()
with open("waagent") as F:
F.write(html)
os.chmod("waagent", 544)
shutil.copyfile("waagent", "/usr/sbin/waagent")
waagent=imp.load_source('waagent','/usr/sbin/waagent')
waagent.MyDistro=waagent.GetMyDistro()
waagent.MyDistro.stopAgentService()
waagent.MyDistro.startAgentService()
+7 -6
View File
@@ -478,14 +478,15 @@ class AbstractDistro(object):
#Check partition type
ret = RunGetOutput("sfdisk -q -c " + device + " 1", chk_err=False)[1].rstrip()
partition = device + "1"
if "GPT" in ret and fs != "ntfs":
#GPT(Guid Partition Table) is used.
if ("GPT" in ret or "ee" == ret) and fs != "ntfs":
#In Ubuntu the previous command returns 'ee'
#GPT(Guid Partition Table) is used.
#The 1st partition is Windows reserved partition.
#Use the 2nd partition as resource disk
partition = device + "2"
Run("mkfs." + fs + " " + partition)
Run("parted {0} rm 1".format(device))
Run("parted {0} rm 2".format(device))
Run("parted {0} mkpart primary 0% 100%".format(device))
Run("mkfs." + fs + " " + partition + " -F")
elif ret == "7" and fs != "ntfs":
Run("sfdisk -c " + device + " 1 83")
Run("mkfs." + fs + " " + partition)