Hace algo más de un año, en el trabajo se nos plantearon las siguientes necesidades:
- Instalar en una máquina varios sistemas operativos.
- Cada sistema operativo debía quedar oculto a los demás, es decir, una vez arrancado un sistema operativo no se debía poder "ver" a los otros sistemas operativos (ni datos, ni particiones, ni nada).
- Además el acceso a cada sistema operativo debía estar protegido por usuario/contraseña.
Tras investigar durante unas cuantas noches conseguí encontrar la solución a nuestros problemas: usar Grub como gestor de arranque.
Vamos a suponer que tenemos instalados 3 sistemas operativos Microsft Windows 7: examen, diurno y tarde. Y como última partición hemos instalado Debian. Usando así las 4 particiones primarias permitidas. Obviamente otro tipo de configuración a nivel de particiones sería posible.
El archivo a editar es /boot/grub/grub.cfg
..................# INICIO CREACIÓN DE USUARIOS# Aquí añadimos los usuarios necesarios para el gestor de arranque.# No son usuarios del SO Debian.# La primera línea define quién será el superusuario y se le puede llamar como quiera.set superusers="root"password root contra1password examen contra2password diurno contra3password tarde contra4# FIN CREACIÓN DE USUARIOS..................
# Entrada de arranque a Debian. Solo accesible por el superusuario
# Al final la línea (antes de la llave) añadimos --users ""
menuentry 'Debian GNU/Linux ...' ... --users "" {
..................
# Entrada de arranque a Debian (recovery mode). Solo accesible por el superusuario
# Al final la línea (antes de la llave) añadimos --users ""
menuentry 'Debian GNU/Linux (recovery mode)' ... --users "" {
..................
# Entrada de arranque a partición EXAMEN (Windows 7). Solo accesible por el usuario examen.
# Dicho sistema operativo está en el primer disco duro (hd0) y en la primera partición (1)
# Al final la línea (antes de la llave) añadimos --users "examen"
menuentry 'Windows 7 [EXAMEN]' ... --users "examen" {
parttool (hd0,1) hidden-
parttool (hd0,2) hidden+
parttool (hd0,3) hidden+
set root=(hd0,1)
chainloader +1
parttool ${root} boot+
boot
}
Habría que hacer lo mismo con el resto de sistemas operativos. Teniendo en cuenta que habría que modificar las particiones que ocultamos (parttool (hd0,2) hidden+) y el parámetro de arranque (set root=(hd0,1))
No puedo añadir ningún enlace a las web donde estuve investigando porque no las recuerdo, ya hace más de un año. Y llevo un tiempo queriendo escribir esta entrada antes de que se me olvidará.