Оказывается, ошибка, которую я совершал, заключалась в настройке петлевого устройства во время initramfs, в течение которого корневая файловая система по-прежнему доступна -только для чтения. Таким образом, изменения, которые петлевое устройство пытается записать в резервный файл, терпят неудачу.
Ответственность за перемонтирование корневой файловой системы при чтении -записи лежит на upstart/systemd/etc., поэтому мне нужно было добавить следующее в /etc/init/lvmloop.conf
, чтобы заставить его работать.
description "custom local LVM loopback device and setup"
start on mounted MOUNTPOINT=/
task
console output
script
LOOP0=/.img-loop0
if [ -f $LOOP0 ]; then
losetup /dev/loop0 $LOOP0 # set up loop device...
vgscan # scan for new PVs
vgchange -ay # activate VGs
vgmknodes -v # makes missing device nodes in /dev
mount /var # for some reason mountall fails to do this...
fi
end script
Было бы «приятнее», если бы я мог разместить это так, чтобы мне не нужно было выполнять эти шаги вручную, но, по крайней мере, ЭТО РАБОТАЕТ.
Используйте -e
перед командой sed (s ).
sed -e '/AddDefaultCharset UTF-8/a <IfModule mime_magic_module>\n MIMEMagicFile conf/magic\n</IfModule>' your_conf_file.ini
ПРИМЕЧАНИЕ:Вы можете использовать -i.bak
для редактирования на месте и создания резервной копии с.bak
(или любым другим суффиксом ).