De repente, mi Ubuntu 16.04 me muestra un initramfs
mensaje como este:
BusyBox v.1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter 'help' for list of built-in commands.
(initramfs)
Si escribo exit
obtengo:
Gave up waiting for root device. Common problems:
— Boot args (cat /proc/cmdline)
— Check rootdelay= (did the system wait long enough?)
— Check root= (did the system wait for the right device?)
— Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/ubuntu--vg-root does not exist. Dropping to a shell!
BusyBox v.1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter 'help' for list of built-in commands.
(initramfs)
Cosas que he probado, sin éxito hasta ahora:
- Intenté recuperar una copia de seguridad de superbloque con un disco de arranque USB, todavía arranca en esto.
- No puedo iniciar en un kernel diferente porque cuando presiono
SHIFT
en el momento de grub solo aparece un kernel en las opciones avanzadas.
Cuando llego a la pantalla de grub, si presiono, e
estas son mis configuraciones:
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 7ec61194-f216-4f1b-b684-5b2e2d643c25
else
search --no-floppy --fs-uuid --set=root 7ec61194-f216-4f1b-b684-5b2e2d643c25
fi
linux /vmlinux-4.4.0-24-generic root=/dev/mapper/ubuntu--vg-root ro quiet splash $vt_handoff
initrd /initrd.img-4.4.0-24-generic
Si inicio en un disco USB LIVE de arranque sudo fdisk -l
, devuelve:
Disk /dev/sda: 480.1 GB, 480103981056 bytes
255 heads, 63 sectors/track, 58369 cylinders, total 937703088 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 identifier: 0x60229a0a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 999423 498688 83 Linux
/dev/sda2 1001470 937701375 468349953 5 Extended
/dev/sda5 1001472 937701375 468349952 83 Linux
Disk /dev/sdb: (skipping since I think this is the USB disk...)
Si monto las particiones a través de nautilus (la cifrada me solicita mi contraseña, que ingreso), luego sudo lsblk
devuelve:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 487M 0 part /media/ubuntu/7ec61194-f216-4f1b-b684-5b2e2d643c
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 446.7G 0 part
└─luks-11613ca4-65f2-4079-a750-6f71b6318903 (dm-0) 252:0 0 446.7G 0 crypt
└─ubuntu--vg-root (dm-1) 252:1 0 439.2G 0 lvm
└─ubuntu--vg-swap_1 (dm-2) 252:2 0 7.5G 0 lvm
sdb 8:16 1 1.9G 0 disk
└─sdb1 8:17 1 1.9G 0 part /cdrom
sr0 11:0 1 1024M 0 rom
loop0 7:0 0 938.7M 1 loop
¿Qué ocurre? ¿Qué impide que el sistema se inicie y me solicite la contraseña de cifrado como de costumbre? ¡Gracias!
Respuesta1
Puede intentar ejecutar el siguiente script desde el LiveCD (posiblemente versiones actualizadas en el enlace). El script intenta automatizar parcialmente el proceso por usted. Fue escrito y probado para una unidad NVMe, por lo que es posible que deba cambiar ligeramente las cosas si está utilizando una unidad SATA/IDE con una /dev/sd*
ruta. Si no está utilizando EFI, puede eliminar cualquier línea que contenga efi
o EFI
ejecutar sed -i -e '/efi/d' -e '/EFI/d' crypt-fix.sh
después de guardar el script en su computadora. Eventualmente habrá que agregar alguna lógica de detección para eso.
https://gist.github.com/dragon788/e777ba64d373210e4f6306ad40ee0e80
cripto-fix.sh
#!/bin/bash
# Call with `sudo bash DEBUG=1 ./crypt-fix.sh` for verbose output
[ -n "$DEBUG"] && set -x
# Prompt user for device from /dev/sd* /dev/nvme* /dev/mmc* prefixes?
# For /dev/sda probably sda1 is EFI and sda2 is boot and sda3 is encrypted
DEVICE=/dev/nvme0n1
EFIPATH="${DEVICE}p1"
BOOTPATH="${DEVICE}p2"
CRYPTPATH="${DEVICE}p3"
TARGETPATH=/mnt
# Need root for mounting stuff
if ! (( $EUID == 0 )); then echo "Please run with `sudo $0`"; fi
clear_mounts () {
# Clears mounts in case of interrupt or upon exit to allow running script multiple times
umount $TARGETPATH/boot/efi
umount $TARGETPATH/boot
umount $TARGETPATH/proc
umount $TARGETPATH/dev
umount $TARGETPATH
vgchange -an
cryptsetup close temp_name
cryptsetup close $CRYPTNAME
set +x
}
trap clear_mounts INT EXIT
cryptsetup open $CRYPTPATH temp_name
vgchange -ay
# Can't get this until LVM devices are scanned above
ROOTPATH=$(ls /dev/mapper/* | grep root)
# Make sure nothing else is mounted on our $TARGETPATH
umount $TARGETPATH
wait
mount $ROOTPATH $TARGETPATH
# Find the name that is required for `update-initramfs` to properly update things
CRYPTNAME=$(cat $TARGETPATH/etc/crypttab | awk '/^[ ]*[^#]/ { print $1; exit }')
umount $TARGETPATH
vgchange -an
cryptsetup close temp_name
# This proper name is required for `update-initramfs` to properly update things
cryptsetup open $CRYPTPATH $CRYPTNAME
wait
vgchange -ay
ROOTPATH=$(ls /dev/mapper/* | grep root)
mount $ROOTPATH $TARGETPATH
mount $BOOTPATH $TARGETPATH/boot
mount $EFIPATH $TARGETPATH/boot/efi
mount -t proc proc $TARGETPATH/proc
mount -o bind /dev $TARGETPATH/dev
# Have also seen people mounting dev/pts and run and sys, they don't appear to be necessary
chroot $TARGETPATH update-initramfs -c -k all
echo "Completed crypt-fix, try rebooting and you should get prompted for your passphrase after grub"