根据cryptsetup changelog(1.2.0):
在luksFormat中允许显式的UUID设置,并允许稍后在luksUUID(–uuid参数)中进行更改。
我的问题是,目前的Debian稳定(挤压)使用1.1.3 – 有没有办法改变LUKS UUID,如果我不能升级这个版本? (也许与其他程序)?
luks格式看起来很简单,基于文本,因此应该很容易操作。 我写了约10分钟,应该这样做。
首先备份您的luks标头!
#!/usr/bin/python import sys import uuid import re if __name__ == "__main__": haveuuid = False val = "" f = open(sys.argv[1], "r+") if len(sys.argv) > 2: if not re.match('[0-9a-f]{8}\-([0-9a-f]{4}\-){3}[0-9a-f]{12}', \ sys.argv[2]): print "Not a valid UUID" sys.exit(1) else: val = sys.argv[2] else: # Create a new UUID val = uuid.uuid1() # Be happy this is LUKS if f.read(4) == "LUKS": # This is the start position of the UUID field. f.seek((32*5)+8, 0) f.write(val.__str__()) f.close() else: print "Not a luks image"
使用python /path/to/script.py /path/to/luks/device运行它可以select指定一个UUID: python /path/to/script.py /path/to/luks/device abcdef01-abcd-abcd-abcd-abcdef012345
我不知道它是否有效,但可以用cryptsetup> = 1.2.0在liveCD上启动,并更改卷的UUID。