Благодаря @Ignacio Vazquez -Abrams и @Jeff Schaller (и другим комментаторам ниже )я понял, что переменная окружения $DISPLAY мне нужна. Если вы находитесь на сервере отображения, значение, хранящееся в $DISPLAY , будет равно 0 , будет возвращено (как что-то ). Следовательно, следующий код (должен? )работает--
if [[ -n $DISPLAY ]];
then
PROMPT = (etc)
else
PROMPT = (etc2)
fi
Всем спасибо.
Прежде чем вы начнете, я бы посоветовал вам выполнить аналогичные шаги в альтернативной среде. У меня есть в основном автоматизированная бродячая установка , которая поддерживает экземпляр Debian с zfsonlinux и несколькими дисками. Он немного устарел, но без изменений он должен быстро дать вам среду для работы. Не стесняйтесь обновить его до последней версии Debian, если вы чувствуете необходимость, и поднимите PR.
Чтобы ответить на ваши индивидуальные вопросы:
Нет проблем с загрузкой с RAID1 при использовании grub. Grub прекрасно понимает RAID1 и автоматически -обнаружит его. Сценарий загрузки dest/50setup -в моем репозитории демонстрирует конкретные команды, обеспечивающие надежную работу.
Я бы не рекомендовал переустанавливать -/usr
и /var
из старой системы, так как это может привести к поломке. ZFSonLinux автоматически монтирует файловые системы при импорте пула,поэтому вам нужно будет добавить пару шагов, чтобы отключить это перед первой загрузкой вашей системы. Это будет выглядеть примерно так:
zfs set canmount=off tank/usr
zfs set canmount=off tank/var
В качестве альтернативы вы можете изменить точку монтирования, чтобы она оставалась для справки:
zfs set mountpoint=/mnt/old-usr tank/usr
zfs set mountpoint=/mnt/old-usr tank/var
Если вы действительно хотите заменить монтирование ZFS /usr
на новую систему, вы можете сделать это, как вы предлагаете, но вы должны убедиться, что ZFS включена при загрузке через initramfs. Бродячий пример предоставляет root(/
)в ZFS, поэтому у вас должны быть все необходимые примеры.
Что касается /home
, установка этого поверх только что созданной домашней системы не должна нарушать работу, но изначально это может работать не так, как вы ожидаете, поскольку пользователи системы и старая файловая система не будут согласны друг с другом. (при условии, что вы не используете внешнюю систему управления пользователями, такую как LDAP ). Здесь у вас есть несколько вариантов:
/etc/passwd
и /etc/groups
в качестве эталона, а затем при загрузке новой системы вам потребуется провести согласование вручную. /home
аналогично монтированию /usr
или /var
, а затем выполните согласование вручную. Путь /opt
не должен создавать проблем, так как он не используется в обычной системе Debian, поэтому его можно оставить для автоматического -монтирования, как и раньше.
Подход с live CD является почти само собой разумеющимся для такой -инсталляции. Например, в папке bootstrap/
моего репозитория папка host/
относится к живой среде, а dest/
относится к недавно установленной системе.
Чтобы файловые системы были смонтированы в новой системе, вам просто нужно убедиться, что zfsonlinux установлен и работает в новой системе. Обычно это делается автоматически при установке пакета zfs-initramfs
.Вы можете дважды проверить, доступен ли модуль zfs
в /boot/initrd.img*
, используя такую команду, как:
gunzip /boot/initrd.img-4.19.0-8-amd64 | grep 'usr/lib/libzfs.so'
В целом получение некоторого опыта в фиктивной среде значительно повысит ваши шансы на успех в реальной среде.