Esta pergunta foi feita há um zilhão de vezes e tem um zilhão de respostas, mas não consegui encontrar uma para resolver o meu problema.
Eu só tenho um sistema operacional instalado: Ubuntu 16.04 32 bits. eu quero mudar para o Ubuntu 16,04 64 bits. Quando tento instalar, o instalador não detecta um sistema operacional e sugere apagar todo o disco, não o que eu quero.
Eu tentei executar os fixparts e reescrevi a tabela de partições. Isso não mudar o problema.
Eu tentei os modos UEFI e BIOS.
Eu já vi isso acontecer com instalações anteriores e tive que fazer "outra coisa" e atribuir manualmente a partição raiz. Mas eu sempre acho isso perturbador. Eu realmente gostaria que o Ubuntu sugerisse a ação apropriada de substituindo a partição de inicialização de 32 bits (sda1) pela nova instalação.
Talvez o próximo curso de ação seja executar a onipresença no modo de depuração e ver se isso dá alguma pista. Caso contrário, terei que procurar mais, começando em "def calculate_operating_systems" em /usr/lib/ubiquity/plugins/ubi-partman.py.
# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
# sudo fdisk -l
Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000a2f5d
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 499711 497664 243M 83 Linux
/dev/sda2 501759 312580095 312078337 148.8G f W95 Ext'd (LBA)
/dev/sda3 312580096 3907028991 3594448896 1.7T 83 Linux
/dev/sda5 501760 312580095 312078336 148.8G 8e Linux LVM
Partition table entries are not in disk order.
Disk /dev/mapper/merlot-root: 146 GiB, 156703391744 bytes, 306061312 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/merlot-swap_1: 2.9 GiB, 3078619136 bytes, 6012928 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
# sudo dmsetup deps -o devname
merlot-swap_1: 1 dependencies : (sda5)
merlot-root: 1 dependencies : (sda5)
# sudo dmsetup -v table /dev/mapper/merlot-root
Name: merlot-root
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 1
Event number: 0
Major, minor: 252, 0
Number of targets: 1
UUID: LVM-nCfFBn74k3QnfrxB0ZX41AxLnua9hTryu96VYKllCnGIJbKdvlPTWshZbejIqeJU
0 306061312 linear 8:5 384
Consegui que o instalador reconhecesse o Ubuntu removendo o bugfix # 1265192 da barra de lançamento. Aqui está o código misc.py e a saída do syslog no meu sistema antes de remover o bugfix.
for res in result:
syslog.syslog(res)
res = res.split(':')
# launchpad bug #1265192, fix os-prober Windows EFI path
res[0] = re.match(r'[/\w\d]+', res[0]).group()
if res[2] == 'Ubuntu':
version = [v for v in re.findall('[0-9.]*', res[1]) if v][0]
# Get rid of the superfluous (development version) (11.04)
text = re.sub('\s*\(.*\).*', '', res[1])
_os_prober_oslist[res[0]] = text
_os_prober_osvers[res[0]] = version
syslog.syslog(res[0])
syslog.syslog(text)
syslog.syslog(version)
else:
# Get rid of the bootloader indication. It's not relevant here.
_os_prober_oslist[res[0]] = res[1].replace(' (loader)', '')
return _os_prober_oslist, _os_prober_osvers
May 15 14:44:11 ubuntu os-prober: debug: os detected by /usr/lib/os-probes/50mounted-tests
May 15 14:44:11 ubuntu ubiquity[18280]: /dev/mapper/merlot-root:Ubuntu 16.04.1 LTS (16.04):Ubuntu:linux
May 15 14:44:11 ubuntu ubiquity[18280]: /dev/mapper/merlot
May 15 14:44:11 ubuntu ubiquity[18280]: Ubuntu 16.04.1 LTS
May 15 14:44:11 ubuntu ubiquity[18280]: 16.04.1
May 15 14:44:11 ubuntu ubiquity[18280]: Device /dev/mapper/merlot-swap_1 not found in os-prober output
May 15 14:44:11 ubuntu ubiquity[18280]: Device /dev/sda1 not found in os-prober output
May 15 14:44:11 ubuntu ubiquity[18280]: Device /dev/sda5 not found in os-prober output
May 15 14:44:11 ubuntu ubiquity[18280]: Device /dev/sda3 not found in os-prober output
May 15 14:44:11 ubuntu ubiquity[18280]: Device /dev/mapper/merlot-root not found in os-prober output
May 15 14:44:11 ubuntu ubiquity[18280]: switched to page partman
Eu não sou um codificador python, mas
res[0] = re.match(r'[/\w\d]+', res[0]).group()
leva
/dev/mapper/merlot-root
e faz isso
/dev/mapper/merlot
e, em seguida, a ubiquidade não pode encontrar a unidade.
Ai, uma vez que eu comentei o bugfix e selecione a opção "replace ubuntu", a instalação ainda falha, então é necessário mais trabalho para corrigir isso.
Eu passei bastante tempo nisso, então vou fazer "outra coisa" e instalar manualmente.