Во-первых, в любых подобных задачах сделайте резервную копию вашего файла заранее, так как слишком много шероховатостей и что-то может пойти не так.
Чтобы достичь вашей цели «сжать диск», вам нужно освободить место с его конца, но в вашем случае нужно сделать несколько шагов для достижения этого, насколько я вижу.
Прежде всего, вам нужно знать, как использовать это как блочное устройство, но НЕ монтируйте его, так как для всех следующих действий потребуется его размонтирование. Для этого - так как это необработанный файл - используйте lossup, как объяснено здесь.
Затем вам нужно сжать ext FS на sda1 через изменить размер2fs
как объяснил здесь. Это освободит место в конце sda1.
Затем у вас есть дополнительная проблема, заключающаяся в том, что ваш загрузочный раздел находится после раздела данных, поэтому получите место в конце, которое вы можете затем уменьшить, вам также нужно переместить это, например. как объяснил здесь.
Тогда у вас есть свободное место в конце, которое позволяет вам изменять размер с помощью qemu-img изменить размер --shrink
как поясняется на справочная страница.
Наконец, поскольку вы переместили загрузочный раздел, вам может потребоваться исправить некоторые вещи загрузчика (не всегда верно, но может применяться в вашем случае). Для этого, наконец, смонтируйте свои диски, сделайте sda15 /boot под корневой файловой системой sda1. затем выполните chroot в эту среду и запустите sudo update-grub
чтобы убедиться, что все мета-записи находятся в нужном месте. Этот последний шаг обременительный и не всегда необходимый (зависит от слишком многих деталей). Делайте это только в том случае, если результат предыдущего шага не загрузится из-за того, что загрузчик не найден.
В целом, это связано с большой сложностью и потенциальной потерей данных, так что, может быть, резервное копирование между каждым шагом?