Удаление запроса на отключение дисков раздела во время неустановленной установки Ubuntu

Я пытаюсь создать полностью автоматическую установку Ubuntu и удалил почти все возможные подсказки из процесса установки. Единственный оставшийся запрос - это тот, который показан в тексте ниже, который предлагает мне отключить смонтированные разделы. Раздражает то, что для меня не имеет значения, выберу я "да" или "нет", поэтому весь запрос не имеет смысла для моего приложения. Кроме того, ничего из того, что я пробовал, не мешало появлению этой подсказки. У кого-нибудь есть какие-либо предложения относительно того, как я могу предотвратить повторение этой подсказки?

Установщик обнаружил, что следующие диски имеют смонтированные разделы:

/ DEV / SDA

Вы хотите, чтобы установщик попытался размонтировать раздел на этих дисках, прежде чем продолжить? Если вы оставите их подключенными, вы не сможете создавать, удалять или изменять размеры разделов на этих дисках, но вы можете установить их на существующие разделы.

Размонтировать разделы, которые используются?

2 ответа

Это похоже на мышление из другого ответа, но с полным протестированным примером кода.

Я столкнулся с той же проблемой и, наконец, по счастливой случайности натолкнулся на набор слайдов, которые позволили мне автоматизировать это, и было сопутствующее хранилище кода с полным файлом preseed. https://github.com/uweplonus/adia-install/blob/master/initrd/preseed.cfg#L3

Многие люди предлагают использовать preseed/early_command umount /media/* но это не сработало в течение достаточно долгого времени из-за того, что предварительная часть запускается по сравнению с разделением.

Правильный способ сделать это состоит в том, чтобы добавить следующее в любой файл preseed, на который ссылается команда загрузки.

d-i partman/early_command string \ USBDEV=$(list-devices usb-partition | sed "s/\(.*\)./\1/");\ BOOTDEV=$(list-devices disk | grep -v "$USBDEV" | head -1);\ debconf-set partman-auto/disk $BOOTDEV;\ debconf-set grub-installer/bootdev $BOOTDEV; \ umount /media;

Не хватает репутации, чтобы комментировать, нужно опубликовать здесь. Решение Dragon788 работало для меня хорошо, пока я не попробовал его на пустом жестком диске. Он дал мне ошибку и ждал ввода, поэтому он не был полностью оставлен без присмотра. Может быть, есть другой способ, но это помогло мне:

umount /media || true; вместо того umount /media;подавить ошибку.

У меня нет особого опыта по изменению установки Ubuntu.

Но самой простой (и, возможно, самой безопасной) вещью будет автоматическое отключение каждого /dev/sdXY который в настоящее время смонтирован, за исключением того, который имеет точку монтирования в /, Я построил следующую команду bash:

размонтировать LC_ALL=en_US.UTF8 mount | grep -P '^/dev/sd' | grep -v 'on / type' | awk '{print $1}'


Чтобы объяснить, как это работает, я разделю его на команды:

  • LC_ALL=en_US.UTF8 mount выводит список подключенных в данный момент дисков в следующем формате, используя английский язык:

    /dev/devicefile on mountpoint type filesystem (mount options)
    

    например

    /dev/sda2 on / type ext4 (rw,errors=remount-ro)
    proc on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    
  • | grep -P '^/dev/sd' выводит список установленных в данный момент устройств и берет каждую строку из него, которая начинается с /dev/sdфильтрация для каждого устройства с твердым диском.

  • | grep -v 'on / type' удаляет из этого выбора корневой раздел действующей системы, чтобы вы не размонтировали сам установщик;)

  • awk '{print $1}' Разбивает отдельные строки, используя любые пробелы в качестве разделителя, и возвращает первый элемент строки разбиения, который является файлом устройства udev, поэтому вывод будет выглядеть примерно так:

    /dev/sda1
    /dev/sdb1
    

Этот вывод наконец передается umount (должен запускаться с правами root), который размонтирует эти разделы, что позволяет выполнить безопасную установку без запроса.

Другие вопросы по тегам