Если вам на самом деле не нужны два раздела, проще всего будет загрузить аварийный компакт-диск с именем gparted . Затем получите оболочку rool и:
mkdir -p /mnt
mkdir -p /oldroot
mount /dev/xvda1 /oldroot
mount /dev/xvda2 /mnt/
mkdir /mnt/opt
mv /mnt/* /mnt/opt
rsync -avx /oldroot /mnt
# now edit /mnt/etc/fstab to comment out or delete the /opt line
umount /mnt /oldroot
/ dev / xvda2 теперь должен содержать старую файловую систему / и / opt. Уловка теперь состоит в том, чтобы удалить старый раздел / dev / xvda1, переместить / dev / xvda2 в начало диска и расширить его, чтобы заполнить весь диск.
К счастью, это довольно просто сделать в редакторе разделов с графическим интерфейсом. Это вполне возможно сделать из командной строки с помощью parted
, но гораздо проще в gparted
.
В результате получится единственный раздел / dev / xvda1 размером 158 ГБ.
После перемещения и изменения размера раздела вам, вероятно, потребуется повторно запустить grub-install, чтобы снова установить загрузчик. Снова смонтируйте раздел как / mnt и:
for i in proc dev sys ; do mount -o bind /$i /mnt/$i ; done
chroot /mnt
grub-install /dev/xvda
exit
for i in proc dev sys / ; do umount /mnt/$i ; done
Basado en esta página en la wiki de Ubuntu , un enfoque para esto es ejecutar su programa en un chroot de Ubuntu 8.04. Estas instrucciones asumen Ubuntu o algún otro derivado de Debian (o el mismo Debian ).
Instale debootstrap
yschroot
:
sudo apt install debootstrap schroot
Cree un archivo de configuración para Ubuntu 8.04 (de 32 -bits, también conocido como Hardy Heron ), denominado /etc/schroot/chroot.d/hardy_i386.conf
y que contenga lo siguiente:
[hardy_i386]
description=Ubuntu 8.04 Hardy for i386
location=/srv/chroot/hardy_i386
personality=linux32
root-users=mephisto
run-setup-scripts=true
run-exec-scripts=true
type=directory
users=mephisto
(reemplazando mephisto
con nombres de usuario apropiados; se pueden especificar múltiples usuarios usando comas ).
Instalar Ubuntu 8.04:
sudo mkdir -p /srv/chroot/hardy_i386
sudo debootstrap --variant=buildd --arch=i386 hardy /srv/chroot/hardy_i386 http://old-releases.ubuntu.com/ubuntu/
Empezar a usar el chroot:
schroot -c hardy_i386 -u root
(esto lo registra como root
en el chroot, lo que puede o no ser apropiado, por supuesto ).
De forma predeterminada, chroot vinculará -sus directorios de inicio, lo que podría ser peligroso; si es necesario, puede deshabilitar esto comentando la línea /home
en /etc/schroot/mount-defaults
.
Una máquina virtual (con, por ejemplo, KVM o VirtualBox)es una mejor opción para algo como esto que un chroot
o un sistema contenedor como docker
o lxc
.
Ubuntu 8.04 es antiguo (2008)-mucho más antiguo incluso que Wheezy (2013 -2016 ), e incluso Wheezy es muy difícil (*)de ejecutar en una máquina moderna con kernels actuales y libc6 bajo docker
. Puede que sea más fácil en un chroot
que en un contenedor, pero no contaría con ello.
Instalar Ubuntu 8.04 en una máquina virtual es trivialmente fácil. Simplemente descargue el instalador ISO, configure una VM (, p. con la interfaz gráfica de usuario virt-manager
de libvirt )y arranque la máquina virtual mediante la ISO.
Alternativamente, es posible usar varias técnicas "físicas a virtuales" para clonar una máquina existente en una VM. En mi opinión, es mejor comenzar con una instalación limpia y nueva de Ubuntu 8.04 y luego configurarlo específicamente para ejecutar su aplicación antigua.
(*)ej. hace más de un año,Tuve que instalar libc6 y un montón de otras bibliotecas de jessie en un contenedor sibilante solo para que se ejecutara en la ventana acoplable. El problema era que el host que ejecutaba docker
se había actualizado para tener libc6 2.24, y la antigua libc6 en el contenedor Wheezy no funcionaba con eso. Habría tenido más sentido simplemente actualizar el contenedor a jessie -, pero la aplicación que estábamos ejecutando era demasiado antigua para ejecutarse en jessie. Entonces, hice un Frankenwheezy monstruoso.
Parece que su aplicación podría ser una aplicación de Windows 3.11 (o tal vez solo fue una analogía... no estoy seguro)-con una máquina virtual, es posible que ni siquiera necesite ejecutar Ubuntu 8.04. Si ese es el caso, y si tiene una licencia válida para una versión antigua adecuada de Windows (, digamos, 95 o 98 o quizás XP. Incluso es posible hacer que Windows for Workgroups 3.11 se ejecute en KVM ), luego puede instalarlo en una VM y luego instalar su aplicación en la VM.
Si no tiene una licencia válida, puede probar ReactOS , un clon de software libre de Windows (diseñado principalmente para ser compatible con Windows Server 2003, pero puede ejecutar software de versiones anteriores de Windows ). Por cierto, hay muchos cruces entre el desarrollo de ReactOS y WINE.
De lo contrario, Ubuntu 8.04 + WINE funcionaría bien en una máquina virtual.