|
|
|
#!/bin/bash -ex
|
|
|
|
|
|
|
|
. /root/config/chroot
|
|
|
|
|
|
|
|
# Specific ubuntu-image chroot configuration goes here.
|
|
|
|
if [ "$IMAGEFORMAT" == "none" ]; then
|
|
|
|
if [ "$SUBPROJECT" == "desktop-preinstalled" ]; then
|
|
|
|
# Create files/dirs Ubiquity requires
|
|
|
|
mkdir -p /var/log/installer
|
|
|
|
touch /var/log/installer/debug
|
|
|
|
touch /var/log/syslog
|
|
|
|
chown syslog:adm /var/log/syslog
|
|
|
|
|
|
|
|
# Create the oem user account
|
|
|
|
/usr/sbin/useradd -d /home/oem -G adm,sudo -m -N -u 29999 oem
|
|
|
|
|
|
|
|
/usr/sbin/oem-config-prepare --quiet
|
|
|
|
touch "/var/lib/oem-config/run"
|
|
|
|
|
|
|
|
# Update the fstab to include the "discard" option, and
|
|
|
|
# "x-systemd.growfs" to ensure the root partition is expanded on first
|
|
|
|
# boot
|
|
|
|
awk \
|
|
|
|
-v root_fs_label="writable" \
|
|
|
|
-v root_fs_options="discard,x-systemd.growfs" \
|
|
|
|
'
|
|
|
|
BEGIN { OFS="\t"; count=0; }
|
|
|
|
|
|
|
|
# Omit the "UNCONFIGURED" warning if it is still present
|
|
|
|
/^# UNCONFIGURED FSTAB/ { next; }
|
|
|
|
|
|
|
|
# Only modify the first non-comment line where the second field is the
|
|
|
|
# root and omit multiple root definitions
|
|
|
|
/^[^#]/ && $2 == "/" {
|
|
|
|
if (!count) {
|
|
|
|
$1="LABEL=" root_fs_label;
|
|
|
|
$4=root_fs_options;
|
|
|
|
$6="1";
|
|
|
|
}
|
|
|
|
count++;
|
|
|
|
if (count > 1) next;
|
|
|
|
}
|
|
|
|
|
|
|
|
{ print; }
|
|
|
|
|
|
|
|
# If we reach the end without seeing a root mount line, add one
|
|
|
|
END {
|
|
|
|
if (!count) {
|
|
|
|
print "LABEL=" root_fs_label, "/", "ext4", root_fs_options, "0", "1";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
' /etc/fstab > /etc/fstab.new
|
|
|
|
mv /etc/fstab.new /etc/fstab
|
|
|
|
|
|
|
|
# Add units for a 1GiB swapfile, generated on first boot
|
|
|
|
cat << EOF > /lib/systemd/system/mkswap.service
|
|
|
|
[Unit]
|
|
|
|
Description=Create the default swapfile
|
|
|
|
DefaultDependencies=no
|
|
|
|
Requires=local-fs.target
|
|
|
|
After=local-fs.target
|
|
|
|
Before=swapfile.swap
|
|
|
|
ConditionPathExists=!/swapfile
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=oneshot
|
|
|
|
ExecStartPre=fallocate -l 1GiB /swapfile
|
|
|
|
ExecStartPre=chmod 600 /swapfile
|
|
|
|
ExecStart=mkswap /swapfile
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=swap.target
|
|
|
|
EOF
|
|
|
|
cat << EOF > /lib/systemd/system/swapfile.swap
|
|
|
|
[Unit]
|
|
|
|
Description=The default swapfile
|
|
|
|
|
|
|
|
[Swap]
|
|
|
|
What=/swapfile
|
|
|
|
EOF
|
|
|
|
mkdir -p /lib/systemd/system/swap.target.wants
|
|
|
|
ln -s ../mkswap.service /lib/systemd/system/swap.target.wants/
|
|
|
|
ln -s ../swapfile.swap /lib/systemd/system/swap.target.wants/
|
|
|
|
fi
|
|
|
|
fi
|