bootstrap-vz/bootstrapvz/common/tasks/boot.py
Anders Ingemann 7b77b484f2 Fix #179
2015-04-16 22:21:12 +02:00

50 lines
1.5 KiB
Python

from bootstrapvz.base import Task
from .. import phases
import os.path
class UpdateInitramfs(Task):
description = 'Updating initramfs'
phase = phases.system_modification
@classmethod
def run(cls, info):
from ..tools import log_check_call
log_check_call(['chroot', info.root, 'update-initramfs', '-u'])
class BlackListModules(Task):
description = 'Blacklisting kernel modules'
phase = phases.system_modification
successors = [UpdateInitramfs]
@classmethod
def run(cls, info):
blacklist_path = os.path.join(info.root, 'etc/modprobe.d/blacklist.conf')
with open(blacklist_path, 'a') as blacklist:
blacklist.write(('# disable pc speaker and floppy\n'
'blacklist pcspkr\n'
'blacklist floppy\n'))
class DisableGetTTYs(Task):
description = 'Disabling getty processes'
phase = phases.system_modification
@classmethod
def run(cls, info):
# Forward compatible check for jessie,
# we should probably get some version numbers up in dis bitch
if info.release_codename in ['squeeze', 'wheezy']:
from ..tools import sed_i
inittab_path = os.path.join(info.root, 'etc/inittab')
tty1 = '1:2345:respawn:/sbin/getty 38400 tty1'
sed_i(inittab_path, '^' + tty1, '#' + tty1)
ttyx = ':23:respawn:/sbin/getty 38400 tty'
for i in range(2, 7):
i = str(i)
sed_i(inittab_path, '^' + i + ttyx + i, '#' + i + ttyx + i)
else:
tty_path = 'etc/systemd/system/getty.target.wants/getty@tty{num}.service'
for i in range(2, 7):
os.remove(os.path.join(info.root, tty_path.format(num=i)))