То, что я пытаюсь сделать:
Последнее не должно быть таким сложным, но теперь моя голова вот-вот взорвется ... Я нигде не могу найти пошаговые инструкции о том, как сделать постоянную установку Ubuntu на одном разделе а не в корневом каталоге (например, в папке ubuntu12.04). В настоящее время я собрал информацию, которая выглядит как весь интернет, и вот что я сделал:
/ubuntu12.04
. /ubuntu12.04/casper-rw
с использованием dd
и mkfs.ext2
it. Добавлено menuentry
в grub.cfg
:
menuentry "Run Ubuntu 12.04.2 Live" {
linux /ubuntu12.04/casper/vmlinuz file=/ubuntu12.04/preseed/ubuntu.seed boot=casper persistent rw quiet splash --
initrd /ubuntu12.04/casper/initrd.lz
}
Но результат всегда одинаков:
(initramfs): Unable to find a medium containing a live file system.
Где я должен разместить casper-rw
файл, чтобы initramfs нашел его? Или что-нибудь, чтобы получить то, что мне нужно.
Мой опыт создания загрузочного диска вручную с помощью grub довольно хрупок. Если он сделан в системе efi, он не будет работать в системах bios, что приведет к ошибке
error:invalid arch independent ELF magic.
grub rescue>
В системах только efi загрузчики bios могут не работать. Лучше всего использовать grub-efi и syslinux точно так же, как автоматически созданный live CD.
Возможно, вы захотите сделать это для
a) для предотвращения того, чтобы папки и файлы базилиона загромождали ваш pendrive и делали его непригодным для любых других целей
b) мультизагрузки
Я использую следующую технику: put grub:
sudo grub-install --removable --root-directory=/path/to/mount /dev/sdx
Кажется, что необходим --removable
или он вызывает смешные ошибки установки на некоторых компьютерах с efi
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
[ 1123] это создает папку boot
и efi
. чтобы установить syslinux внутри папки boot
(в отличие от стандартного live cd):
cd /path/to/mount
sudo syslinux --directory boot/syslinux --install /dev/sdx
распакуйте iso ubuntu в папку, скажем, ubuntu (/path/to/mount/ubuntu
), отредактируйте /path/to/mount/boot/grub/grub.cfg
, чтобы она содержала:
menuentry "Ubuntu" {
set gfxpayload=keep
linux /ubuntu/casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash live-media-path=/ubuntu/casper --
initrd /ubuntu/casper/initrd.lz
}
затем настройте syslinux: copy vesamenu.c32
из каталога isolinux в iso для /path/to/mount/boot/syslinux/vesamenu.c32
, создайте /path/to/mount/boot/syslinux/slax.cfg
, чтобы он содержал:
PROMPT 0
TIMEOUT 90
DEFAULT /boot/syslinux/vesamenu.c32
LABEL Ubuntu
MENU LABEL Ubuntu
kernel /ubuntu/casper/vmlinuz.efi
append initrd=/ubuntu/casper/initrd.lz boot=casper live-media-path=/ubuntu/casper quiet splash --
Для Ubuntu 12.04.2 ядро - /casper/vmlinuz.efi
. Обратите внимание, что .efi
был добавлен недавно.
Кроме того, вам не нужно извлекать файлы CD, вы можете загрузиться прямо с .iso
. Вот шаблон, который я использую для мультизагрузки USB:
menuentry "YOUR TITLE" {
insmod ntfs
insmod iso9660
loopback loop /distros/FILENAME.ISO
linux (loop)/casper/vmlinuz.efi persistent boot=casper iso-scan/filename="/distros/FILENAME.ISO" noeject noprompt splash toram --
initrd (loop)/casper/initrd.lz
}
Таким образом, я могу сохранить все дистрибутивы / версии в виде их исходных файлов .iso в каталоге /distros
внутри раздела данных NTFS. Grub2 устанавливается в MBR, а его файлы /boot
(включая рукописный /boot/grub/grub.cfg
выше) также в разделе данных. Grub2 был установлен как:
sudo grub-install --no-floppy --root-directory="/PATH/TO/MOUNTED/USB" "/dev/sdX"