Em um servidor Ubuntu remoto, realizei uma série de upgrades / alterações para ir de um Ubuntu 10.10 Maverick para um servidor de instalação do 12.04 LTS Precise
Tudo isso correu bem, exceto alguns soluços que eu tive, o tempo todo sem acesso físico - tão longe. O próximo objetivo é criar um servidor XEN usando o LVM como armazenamento de back-end. O sistema não tinha o LVM, que adicionei quando cheguei ao 12.04 LTS. Eu sei como criar remotamente uma máquina XEN, fiz isso antes. Mas eu tenho um problema ao tentar inicializar a nova configuração.
A pessoa original que instalou esta caixa não prestou atenção ao particionamento; a máquina foi usada como um servidor, mas instalada como desktop (isso eu consertei), mas me deixou com esse tipo de esquema de particionamento:
Disk /dev/sda: 500.0 GB, 499999834112 bytes
...
Device Boot Start End Blocks Id System
/dev/sda1 * 1 58558 470361088 83 Linux
/dev/sda2 58558 60789 17916929 5 Extended
/dev/sda5 58558 60789 17916928 82 Linux swap / Solaris
Então peguei a enorme partição swap 17G e reorganizei-a um pouco em uma nova inicialização (agora / dev / sda2), uma pequena partição swap (/ dev / sda3) e uma nova raiz (lvs). Eu tenho o diskusage para cerca de 3GB, que é pequeno o suficiente e eu copiei isso para uma nova raiz, que eu criei no LVM.
Atualmente, temos
Device Boot Start End Blocks Id System
/dev/sda1 2048 940724223 470361088 83 Linux
/dev/sda2 * 940724224 941748223 512000 83 Linux
/dev/sda3 941748224 943845375 1048576 82 Linux swap / Solaris
/dev/sda4 943845376 976562175 16358400 8e Linux LVM
/ dev / sda1 é a partição de inicialização antiga e eu quero que a máquina inicialize a partir de / dev / sda2.
A diferença agora é que agora quero uma partição / boot e / separada. A partição raiz é conhecida no LVM como:
# lvscan
ACTIVE '/dev/server20/root' [10.00 GiB] inherit
O objetivo final é que eu queira trazer / dev / sda1 sob controle LVM, mas eu tenho que inicializar o sistema de uma forma que não seja usada. A partir daí, o LVM funcionará.
Além de todo o sistema de arquivos acima, eu fiz:
volume lógico criado:
pvcreate /dev/sda4
vgcreate server20 /dev/sda4
lvcreate -L 10G -n root server20
mkfs.ext4 /dev/server20/root
montou:
mount /dev/server20/root /mnt/root/
mount /dev/sda2 /mnt/root/boot/
(cd / ; find . -xdev -print0 | rsync -xavz . /mnt/root/)
for i in /dev /run /dev/pts /proc /sys; do sudo mount -B $i /mnt/root$i; done
update grub:
chroot /mnt/root
echo "dm-mod" >> /etc/initramfs-tools/modules
echo "dm-mod" >> /etc/modules
grub-mkconfig (verified config file visually)
update-grub (no errors/warnings)
Revi o /boot/grub/grub.cfg que eu vejo, a maioria parece correta, especialmente coisas como:
insmod lvm
...
set root='(server20-root)'
search --no-floppy --fs-uuid --set=root 0bb92c24-8c02-4fa3-8f75-970076261b2f
...
menuentry 'Ubuntu, with Linux 3.2.0-38-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root 891b3eaa-fb43-4a42-9789-a91c2a5ffb13
linux /vmlinuz-3.2.0-38-generic root=/dev/mapper/server20-root ro quiet
initrd /initrd.img-3.2.0-38-generic
}
...
Então, verificando o blkid:
/dev/sda2: UUID="891b3eaa-fb43-4a42-9789-a91c2a5ffb13" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda4: UUID="IyDrfU-TOYT-rFXO-JknG-rwEK-Sm2A-mfKcIe" TYPE="LVM2_member"
/dev/mapper/server20-root: UUID="0bb92c24-8c02-4fa3-8f75-970076261b2f" TYPE="ext4"
/dev/sda1: UUID="888c061a-1d51-4516-aced-4bb21042d2f4" TYPE="ext4"
/dev/sda3: UUID="19efc041-eccd-42c9-94aa-5b6c88ffd5bb" TYPE="swap"
Então, eu entendo que isso é: minha partição de inicialização será msdos2, que seria / dev / sda2. Também referenciado na linha de pesquisa por uuid, mesmo que ele diga root, eu o comparei com outras instalações e isso é como o boot uuid (suposição correta?) No caso de um split root / boot.
Eu realmente achei que isso funcionaria para reiniciar usando o layout de disco adicional, mas isso não aconteceu. Eu configurei ambos / dev / sda1 e / dev / sda2 sinalizador inicializável ativo usando fdisk.
Começou da mesma maneira antiga de antes, sem um soluço felizmente.
Minhas perguntas mais profundas provavelmente são desencadeadas em mal-entendidos usando o chroot + update-grub. Na verdade, não tenho certeza do que preciso fazer na raiz / boot / dev / sda1. Eu tenho que copiar o grub.cfg da versão chrooted para o subdiretório / boot ou não?
Passos que tomei após a reinicialização agora
switched off bootable flag on /dev/sda1
remounted everything again and performed all steps again plus an additional
grub-install /dev/sda (from the chroot)
Isso será o suficiente para desconsiderar / dev / sda1? Eu li sobre tudo no grub que pude encontrar, mas não consegui obter respostas sobre como o processo de inicialização vai no caso de duas partições de inicialização no mesmo disco. (muitos outros casos). Alguém pode visualizar o fluxo do grub em relação ao uso de um chroot vs usando algo parecido grub-install --boot-directory = / mnt / boot . Como isso é tratado internamente?
Sinta-se à vontade para sugerir melhores títulos para esta pergunta, sou muito ruim nisso.
Além disso, aqui está o MBR
dd if=/dev/sda of=mbr.bin bs=512 count=1
root@server20:/# file mbr.bin
mbr.bin: x86 boot sector;
partition 1: ID=0x83, starthead 32, startsector 2048, 940722176 sectors;
partition 2: ID=0x83, active, starthead 95, startsector 940724224, 1024000 sectors;
partition 3: ID=0x82, starthead 29, startsector 941748224, 2097152 sectors;
partition 4: ID=0x8e, starthead 167, startsector 943845376, 32716800 sectors, code offset 0x63