mkinitcpio, mkinitramfs, initrd rebuild

This commit is contained in:
Berk Çakar
2021-09-13 23:49:52 +03:00
parent f2d0201c0d
commit b2f35a7320
27 changed files with 1159 additions and 44 deletions
+17 -13
View File
@@ -3,25 +3,29 @@
import os
import piksemel
import subprocess
import os
def generateinitrd(filepath):
doc = piksemel.parse(filepath)
for item in doc.tags("File"):
path = item.getTagData("Path")
if path.startswith("lib/modules/"):
kver = path.split("/")[2]
subprocess.call(["/usr/bin/mkinitcpio","-k","%s"% kver ,"-g","/boot/initramfs-%s-fallback.img"% kver,"-S","autodetect"])
subprocess.call(["/usr/bin/mkinitcpio","-k","%s"% kver ,"-c","/etc/mkinitcpio.conf","-g","/boot/initramfs-%s.img"% kver])
return
def updateInitrd(filepath):
patterns = ("/lib/modules", "/usr/lib/initcpio", "/boot/kernel", "/bin/busybox")
parse = piksemel.parse(filepath)
for xmlfile in parse.tags("File"):
path = xmlfile.getTagData("Path")
if not path.startswith("/"):
path = "/%s" % path
if path.startswith(patterns):
version = path.split("/")[3]
os.environ['PATH'] = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin'
subprocess.call(["mkinitcpio","-k","%s"% version ,"-g","/boot/initramfs-%s-fallback.img"% version,"-S","autodetect"])
subprocess.call(["mkinitcpio","-k","%s"% version ,"-c","/etc/mkinitcpio.conf","-g","/boot/initramfs-%s.img"% version])
if os.path.exists("/proc/cmdline"):
os.system("/usr/bin/update-grub")
break
def setupPackage(metapath, filepath):
generateinitrd(filepath)
updateInitrd(filepath)
def cleanupPackage(metapath, filepath):
pass
def postCleanupPackage(metapath, filepath):
pass