У меня есть ноутбук с Arch Linux на нем

[averagejoey2000@JoeyHobbyPCarchLinux arch-install-scripts]$ lsblk -l
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda    8:0    0 596.2G  0 disk 
sda1   8:1    0    25G  0 part /
sda2   8:2    0     2M  0 part 
sda3   8:3    0   512M  0 part /boot
sda4   8:4    0     4G  0 part [SWAP]
sda5   8:5    0     4G  0 part [SWAP]
sda6   8:6    0 266.3G  0 part /home
sda7   8:7    0 296.3G  0 part 

Я собираюсь установить Slackware Linux на /dev /sda7 и выше. У меня нет пустых DVD-дисков для установки на основе ISO, dd if = usbboot.img из = /dev /sdb дает мне меню загрузки, но мой компьютер перегревается до того, как он прогрессирует. на отдельном ноутбуке вместо перегрева он ждет 3 часа вместо обещанных двух минут. У меня нет ни денег, ни терпения, чтобы заказать и дождаться отправки по почте на DVD, приобретенной для того, чтобы испытать на себе трудности с slackware. Я хочу быть в состоянии

mkdir /mnt/slack
mount /dev/sda7 /mnt/slack
(can't remember the command) proc proc proc/
slackinst

но я хочу добраться до детали перед монтажом, если это вообще возможно.

TL; DR: есть Arch Linux, хотите расслабиться, должны сохранить оба; нет CD, нет USB или денег; может chroot, предварительно разделенный: GPT

2 ответа2

0

Вы можете попробовать что-то подобное, хотя я не уверен, что это сработает для вас. Это может потребовать некоторого волшебства командной строки.

Первое, что вам нужно сделать, это смонтировать файл usbboot.img:

$ mkdir /tmp/usbboot
$ sudo mount usbboot.img /tmp/usbboot

Затем скопируйте из него файл initrd.img и размонтируйте:

$ cp /tmp/usbboot/initrd.img /tmp/
$ sudo umount /tmp/usbboot
$ rmdir /tmp/usbboot

Так что теперь initrd находится в /tmp. Но что это?

$ cd /tmp
$ file initrd.img
initrd.img: gzip compressed data, from Unix, last modified: Fri Nov  1 01:07:44 2013, max compression

Ах, это сжато. Распакуйте его, переименовав в .gz и распаковав:

$ mv initrd.img{,.gz}
$ gzip -d initrd.img.gz

Теперь что это?

$ file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)

Теперь создайте новый каталог для установщика slackware и извлеките initrd с помощью cpio (чтобы все права были правильными, вам нужно быть пользователем root):

$ mkdir slackboot
$ cd slackboot
$ su
# cat ../initrd.img | cpio -i

ПРИМЕЧАНИЕ: cpio извлечет все свои файлы в текущий каталог, поэтому убедитесь, что вы находитесь внутри каталога, в который вы хотите файлы при вызове. Это не будет пытаться это из /.

Теперь вы можете выполнить chroot и проверить это:

# chroot .
# /usr/lib/setup/setup
Error opening terminal: xterm.

Кажется, вам нужен настоящий tty/pty/ что угодно. Так что войдите в один из ваших реальных (не X11) терминалов как root (ctrl+alt+2).

# mount -o bind /dev /tmp/slackboot/dev
# mount -o bind /sys /tmp/slackboot/sys
# mount -o bind /proc /tmp/slackboot/proc
# chroot /tmp/slackboot
# /usr/lib/setup/setup

Это запустит установщик, и вы должны начать. Не вините меня, если вы разорвете свой жесткий диск.

0

Самое простое решение - использовать возможность Grub2 загружаться с ISO-образа, который, по-видимому, у вас уже есть или может быть получен. Предполагая, что это называется slack.iso, (все команды как sudo)

 mkdir /boot/iso
 cp /path/to/your/slack.iso /boot/iso

Теперь отредактируйте файл /etc/grub.d/40_custom и вставьте эти строки:

 #!/bin/sh
 echo "Adding 40_custom." >&2
 exec tail -n +4 $0
 # This file provides an easy way to add custom menu entries.  Simply type the
 # menu entries you want to add after this comment.  Be careful not to change
 # the 'exec tail' line above.

 menuentry "Slackware ISO" {
    set isofile="/boot/iso/slack.iso"
    loopback loop (hd0,3)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
    initrd (loop)/casper/initrd.lz
 }

Теперь сохраните и обновите grub:

 update-grub

Перезагрузитесь, выберите новую запись, вы увидите живую загрузку Slack.

Если вы сейчас хотите установить, вы должны помнить, что вы не можете установить на используемый диск, bt, поскольку ваш образ в реальном времени уже загружен в ОЗУ, не о чем беспокоиться: как sudo,

 umount -l /isodevice

и вы готовы начать установку. Просто убедитесь, что вы выбрали правильный (т.е. пустой) раздел для установки.

NB: если вы загружаетесь с efi, вам нужно заменить строку linux в 40_custom на:

  linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject

NB2: ценой восстановления очевидного, я также хотел бы отметить, что для целей тестирования самая простая вещь для установки новой ОС - это сделать это внутри виртуальной машины. Я не вижу смысла в том, чтобы иметь на одном компьютере две рабочие машины, поскольку они не могут работать одновременно. Вместо этого виртуальная машина может быть запущена одновременно с основной операционной системой, может совместно использовать с ней весь диск, может быть легко удалена или перемещена на другой компьютер и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .