Ubuntu 18.04 вышла 26 апреля 2018 года, и я хочу попробовать обновить мои программы и преобразовать мои данные, но не хочу фиксировать их, если есть ошибки.
Я сократил Windows с 410 ГБ до 385 ГБ, перезагрузил Ubuntu 16.04 и побежал gparted
создавать новый раздел на 25 ГБ с надписью «Ubuntu18.04». Я запустил rm-kernels
и удалил около 20 ядер, чтобы убрать около 10 ГБ в Ubuntu 16.04.
Теперь я хочу скрипт, который заполнит новый раздел 16.04 LTS и создаст для него новую опцию меню Grub. Только соответствующие каталоги должны быть скопированы. Например /sys
, /run
, /proc
и /dev
виртуальные каталоги , созданные во время загрузки и не должны быть скопированы.
Я также хочу /etc/fstab
установить исправления с правильным UUID и cron
отключить задания перезагрузки, чтобы ежедневные резервные копии клонированных данных не запускались после загрузки клона.
Я ожидаю запуска сценария много раз в течение следующих нескольких недель / месяцев. Таким образом, процесс клонирования должен легко повторяться.
Тот же сценарий можно использовать для тестирования обновлений безопасности и новых обновлений Ubuntu Kernel Team без влияния на производственные системы.
Ответы:
Скрипт Bash для клонирования активного раздела Ubuntu в раздел клонирования
clone-ubuntu.sh
Скрипт Баш будет легко и безопасно реплицировать 16.04 LTS в раздел для обновления до 18.04 LTS:Важные моменты для рассмотрения:
ext4
раздел, достаточно большой для размещения клона Ubuntu 16.04clone-ubuntu.sh
раздел не может быть смонтирован. Скрипт автоматически монтирует и размонтирует раздел.rsync
используется для копирования файлов из/
раздела клона. При первом запускеclone-ubuntu.sh
это займет несколько минут. При втором запуске сценария обновляются только изменения файла, и это должно занять менее минуты./
файлов и каталогов./etc/cron.d
задания Cron (перезагрузка) перемещаются в новый подкаталог с именем/etc/cron.d/hold
. После загрузки клона не забудьте запустить,sudo crontab -e
чтобы предотвратить запуск выбранных заданий cron./etc/fstab
изменяется с соответствующим UUID для раздела, в котором он находится./boot/grub/grub.cfg
изменяется с соответствующим UUID для успешной загрузки клона. Клонированный файлquiet splash
изменен наnosplash
так, что вы получаете прокрутку сообщений терминала. Это дает визуальную осведомленность о загрузке клона, а не «реальной» версии.update-grub
запускается для обновления Grub новыми пунктами меню, указывающими на клонированный раздел./etc/update-manager/release-upgrades
изменяется для измененияPrompt=never
наPrompt=lts
. Когда вы загружаете клон и выполняетеdo-release-upgrade -d
это, вы можете обновить Ubuntu 16.04 до 18.04.Экран подтверждения
После выбора целевого раздела-клона он сначала проверяется на
ext4
тип раздела и еще не смонтирован. Если этот тест пройден, появится сообщение с подтверждением:В этом примере для клонирования был выбран предыдущий клон. Свободное место на клоне - это немая точка, потому что мы уже знаем, что свободного места достаточно.
Если у вас несколько установок Ubuntu, убедитесь, что вы выбрали правильный раздел для клонирования загруженной в данный момент Ubuntu, смонтированной как
/
(root), в.Это ваш последний шанс отменить, нажав любую клавишу, кроме
y
илиY
.Вывод списка
Когда вы запустите скрипт, вы получите следующие выходные данные (исключая выходные данные, перечисленные выше):
rsync
отображение статуса нового клонаПри первом клонировании
rsync
выдаст обновление от 0 до 100% всех созданных файлов. Файлы не будут удалены или изменены, поскольку клон пуст:rsync
отображение статуса при откидыванииКогда
rsync
откатывается, он никогда не попадает,100%
потому что файлы, которые никогда не менялись, не копируются. В процессе обновления будут возникать задержки, так как приrsync
сканировании копируется следующий файл и удаляются новые файлы, созданные в клоне, которых никогда не было в оригинале:Bash скрипт -
clone-ubuntu.sh
Скопируйте и вставьте указанный выше код bash в новый файл с именем
/usr/local/bin/clone-ubuntu.sh
. Затем сделайте новый файл исполняемым, используя:Для вызова скрипта используйте:
Как обновить клон 16.04 LTS до Ubuntu 18.04 LTS
Это «бонусный» раздел, который может заинтересовать многих людей.
Перезагрузите свою машину.
grub
Меню будет содержать новый пункт меню , ссылающийся на клонированный раздел. Вы также можете выбрать конкретную версию ядра в меню Advanced Options клона .Один из способов преобразовать клонированный 16.04 LTS в 18.04 LTS - запустить:
Обратите внимание, что
-d
флаг требовался до 26 июля 2018 года, но больше не нужен.Внимательно прочитайте подтверждение обновления 18.04 .
Прежде чем продолжить, убедитесь, что неактивная блокировка экрана отключена. Процесс обновления может произойти сбой, если ваш компьютер выходит на экран блокировки из-за неактивности клавиатуры.
Резюме процесса обновления 18.04
Этот раздел будет зависеть от компьютера, поскольку разные пользователи устанавливают разные приложения. Вот краткое резюме, которое я сделал на основе заметок и памяти:
Обратите внимание, шаг 10, большинство людей никогда не увидят. У меня на Ubuntu 16.04 установлена старая версия драйвера nVidia, которую я так и не смог полностью удалить. Он включен, потому что у вас могут быть похожие старые пакеты, которые никогда полностью не удаляются
Grub меняет загрузочное меню на клонирование под UEFI
В отличие от обновлений 18.04, я обнаружил, что обновление 18.04.1 изменило конфигурацию Grub UEFI, чтобы использовать меню клона grub вместо исходного меню grub согласно этому ответу: Двойная загрузка и файлы /boot/grub/grub.cfg - какой из них является используемый?
Запуск
sudo update-grub
после загрузки исходного раздела недостаточен для изменения,grub.cfg
загружаемого grub. Вы должны использовать,sudo grub-install
чтобы заставить grub использовать конфигурацию исходного раздела.И исходный раздел, и раздел клонирования могут использовать
update-grub
для поддержки своего собственного/boot/grub/grub.cfg
файла, но во время загрузки может использоваться только один.Конечно, если вы хотите, чтобы grub использовал меню grub в Clone, не делайте описанных выше шагов с оригинальным разделом.
Редактировать историю
Редактировать 6 мая 2018 г. - Исправлено отображение информации для пустого клонового (целевого) раздела.
Изменить 26 августа 2018 г. - Использовать
--inplace
опцию сrsync
такими большими файлами, как мусорный файл размером 2 ГБ, которые не дублируются во время копирования. Это может привести к ошибке «недостаточно места на диске». Закомментируйте/etc/cron.d
переопределения, потому что пользователи могут хотеть сохранить или хотеть другой каталог вообще. Обновите инструкции для использованияdo-release-upgrade
без-d
флага, потому что теперь выпущена Ubuntu 18.04.1 LTS.источник
clone-ubuntu.sh
Но Но я все равно использовал это 4 раза!Проблемы с обновлением с предыдущих выпусков до 18.04 LTS
Нелегко перейти с предыдущих выпусков на 18.04 LTS. Я не знаю, было ли в прошлом больше проблем, чем такое обновление, но люди, которые выпускают обновление сейчас, рискуют для себя. С другой стороны, они находят ошибки, и если сообщать об ошибках , это поможет разработать инструмент обновления, а также отладить саму систему Ubuntu 18.04 LTS.
Это означает, что люди, которые достаточно терпеливы, чтобы дождаться официального выпуска обновления с первой редакцией (18.04.1 LTS) , получат более плавную езду .
Тестирование перед полным обновлением ...
Метод, описанный здесь @ WinEunuuchs2Unix, позволяет проводить тестирование с копией реальной системы, если обновление до 18.04 LTS будет работать с вашей текущей [более или менее модифицированной] операционной системой с аппаратным обеспечением вашего компьютера.
Это может предотвратить несколько бедствий с поврежденной операционной системой.
Я еще не использовал скрипт @ WinEunuuchs2Unix, но я понимаю, что он очень полезен, и я намерен его использовать. Мне удалось обновить с 8.04 до 10.04 до 12.04, который я использовал долгое время. Но когда я решил перейти с 14.04 на 16.04, я не смог найти ошибки.
... а если проблемы, сделай новую установку
У меня были хорошие резервные копии , поэтому я сделал новую установку 16.04 и позже скопировал, что я хотел сохранить и проверил на наличие твиков, скриптов, псевдонимов и установленных программ. Если бы я использовал метод @ WinEunuuchs2Unix, я видел проблему раньше, я бы сделал новую установку напрямую.
Обновление постоянной живой системы
Постоянные живые системы используются для получения очень переносимых систем Ubuntu, которые иногда используются для тестирования, но иногда используются в течение длительного времени.
Это известная проблема, что вы не должны обновлять и обновлять такую систему, как вы делаете с установленной системой, потому что она рано или поздно будет повреждена. Кроме того, вы застряли с ядром и драйверами ядра, которые поставляются с iso-файлом, потому что они запускаются до запуска оверлейной системы.
Но обычно можно сохранить
/home
каталог, как вы можете, когда вы делаете новую установку с отдельным «домашним» разделом. Если вы создадитеhome-rw
раздел, постоянная работающая система найдет и использует его автоматически во время загрузки.Я занимаюсь разработкой и тестированием шелл-скрипта mk-persistent-live_with_home-rw , который может создать постоянную живую систему с
home-rw
разделом и впоследствии обновить ее,замените iso-файл более новым. По крайней мере, вы должны обновить при выпуске нового iso-файла, но вы также можете обновлять систему LTS раз в месяц и использовать текущие ежедневные iso-файлы с трекера тестирования ,
изменить grub для нового iso-файла.
протрите (переформатируйте)
casper-rw
файл, в котором хранятся модификации операционной системы (поэтому вы должны переустановить пакеты программ, которые вы добавили в систему),сохранить
home-rw
раздел с вашими личными файлами, настройками и настройками.Смотрите эту ссылку для более подробной информации.
Дополнительная ссылка
Общие советы для людей, которые хотят протестировать последнюю и лучшую версию Ubuntu, можно найти по следующей ссылке:
Как принять участие в тестировании и разработке Ubuntu
источник