Дистро что я могу загрузить в оперативку?

Существует ли модифицированная версия Ubuntu, которую я могу выбрать для загрузки в ОЗУ при запуске? В некотором роде, как LiveCD, но его можно легко изменить (то есть: я могу установить вещи), когда я выбираю загрузку с диска.

Идея состоит в том, чтобы установить его на USB-накопитель. Я знаю, что есть что- то подобное, но во многих департаментах не хватает slax. "Полная" версия Ubuntu была бы лучше.

Установка LiveUSB, кажется, довольно близка к тому, что я хочу, но, очевидно, мне нужно выбрать, будет ли она постоянной к моменту ее установки. Я хочу иметь возможность выбирать это каждый раз, когда я загружаюсь.

4 ответа

Решение

Есть параметр toram, который вы можете дать последним Ubuntu livecd во время загрузки, недавнее значение 10.04 или новее. Это загрузит все в ОЗУ (при условии, что у вас достаточно ОЗУ для его хранения), и после этого вы сможете извлечь CD (или USB-флешку) и продолжить обычное использование Ubuntu.

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

В большинстве случаев Ubuntu (почти любая версия) будет отлично работать в режиме реального времени, и, помещенный в USB с опциями "Persistent" данных, у вас будет то, что вы хотите.

Проблема будет в том, что при отключении USB-накопителя / жесткого диска диск будет отключен, и даже при повторном подключении USB-накопитель будет недоступен, если вы не предпримете какие-либо действия для восстановления точки монтирования в USB.

Тем не менее, все запущенные приложения будут продолжать работать, даже если вы отключите или отключите USB.

Хорошая идея - убедиться, что все процессы, которые вам нужны, загружаются при запуске, что гарантирует, что процессы будут запущены во время отключения USB.

Я сам сделал это с помощью нескольких приложений. Я использую дистрибутив Israel Remix Team, который уже предварительно загружен множеством приложений, и таким образом, когда приложение загружено, я могу отключить USB-память, и программа продолжает работу.

Я не пробовал программы, требующие больших ресурсов, но в моем случае:

  1. Совместное использование файлов продолжает работать и обмениваться файлами, даже если эти файлы находятся на жестком диске, отличном от файловой системы USB.
  2. VLC продолжает воспроизводить трансляцию радиостанции без проблем,
  3. Yakuake продолжает работу и делает то, что я запрашиваю, если я не хочу что-то от отключенного USB
  4. Google Chrome продолжает просматривать веб-страницы и позволяет мне делать несколько вещей, таких как мониторинг ip-камер.

Единственная проблема заключается в том, что я пытаюсь подключить USB для запуска нового приложения, что не может быть достигнуто текущим экземпляром ОС, поэтому мне нужно перезагрузить компьютер, чтобы запустить новое приложение рядом с теми, которые загружены в запускать.

Еще одна хорошая идея - использовать функцию "Запомнить запущенные приложения" в окне настроек "Система / Настройки / Запускаемые приложения". Который (когда включен) "запомнит" все программы, которые вы используете, и откроет их после перезагрузки или при первом запуске системы за день.

Если вы хотите удалить приложение из этой функции, просто закройте его, перейдите к этой функции и нажмите "Запомнить запущенное приложение", чтобы обновить список программ, которые будут открыты в следующий раз.

Скриншот размещен здесь, чтобы проиллюстрировать.

введите описание здесь

Затем, принимая во внимание сказанное выше, стоит провести следующий эксперимент:

Руководство по загрузке с USB-диска:

Прежде всего, вы можете создать загрузочный диск USB с помощью графического интерфейса, что облегчит задачу. К сожалению, это может быть сделано только в том случае, если внутри системы Ubuntu, как сессию Live, так и установленную систему, можно добиться цели.

Я знаю, что люди могут предложить вам выполнить несколько других успешных процедур, но в моем случае я расскажу о "Startup Disk Creator".

В нескольких дистрибутивах Linux вы можете найти этот инструмент в "System / Administration / Startup Disk Creator". Я настоятельно рекомендую вам попробовать Israel Remix Team, которую я использую, но почти во всех дистрибутивах должен присутствовать этот инструмент.

Здесь вы можете увидеть скриншот, чтобы увидеть инструмент, который был недавно открыт:

введите описание здесь

Убедитесь, что вы загрузили предпочитаемый дистрибутив Ubuntu, прежде чем попробовать это в режиме реального времени.

В окне "Создать загрузочный диск" нажмите кнопку "Другие" в правом верхнем углу, чтобы выбрать ISO-образ вашего дистрибутива Linux, который вы ранее загрузили и уже вставили USB, который собираетесь использовать для этого процесса. ".Iso" и USB должны появиться в соответствующих областях.

введите описание здесь

ПРИМЕЧАНИЕ. Если вы собираетесь использовать предварительно записанный DVD-диск для процесса, просто вставьте DVD-диск в лоток, и он будет указан в списке источников, как показано на следующем рисунке:

введите описание здесь

В моем случае на моей 4 ГБ USB-памяти уже установлен живой сеанс. Сначала я нажму на "Erase Disk", чтобы собрать достаточно места для системы, после чего я получу опции для обработки данных, на которой я собираюсь выбрать размер диска, который я хочу использовать для сохранения данных и конфигураций (например, для установки программ и т. д.), я собираюсь использовать для этой цели 1,4 ГБ.

введите описание здесь

Теперь я нажимаю "Создать загрузочный диск", и процесс копирования будет происходить.

введите описание здесь

После чего GRUB также должен быть установлен. К сожалению, процесс установки GRUB был слишком быстрым, поэтому я не смог сделать снимок.

Файл сохранения будет создан.

введите описание здесьвведите описание здесь

Тогда вы сможете начать с этого USB. Обратите внимание, что вы можете использовать как USB-накопители, так и USB-жесткие диски, даже если они используются с адаптером, IDE-to-USB или SATA-to-USB.

введите описание здесь

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

Удачи!

Я работал над этим просто. Установка livecd-to-usb не очень хорошо работала для меня. Я создал модифицированную версию "локального" скрипта для сервера Ubuntu 11.04. После применения патча (или ручного редактирования локально с изменениями, конечно) вам нужно только update-iniramfs -u и загрузить linux с аргументом ядра "ramboot", и ваша система полностью загрузит обычную систему linux в ram. Внесение постоянных изменений так же просто, как rsync'с файловой системы ramdisk на загрузочное устройство. В моем случае это usb-ручка, но это может быть любое подходящее загрузочное блочное устройство. Конечно, вы можете просто перезагрузиться без аргумента "ramboot" и внести изменения, так как вы вернетесь на блочное устройство, а затем снова перезагрузиться в ramboot, но в этом нет необходимости, за исключением того, что это очень ясно, когда вы в каком состоянии.

0) "sudo su"

(вам не нужно делать этот шаг, но тогда вам нужно убедиться, что вы выполняете все, что может потребоваться) Я склоняюсь к "sudo su", когда я делаю модификации этого типа систем.

1) скачать или скопировать / вставить содержимое этого патча в файл:

"/usr/share/initramfs-tools/scripts/ramboot.patch" - не может содержать pastebin, новичок. включен в конце

2) cd /usr/share/initramfs-tools/scripts; cp local local.bak # только в случае

3) патч локальный ramboot.patch

Это применяет изменения, определенные в ramboot.patch, к вашему локальному сценарию. /usr/share/initramfs-tools/scripts/local - это обычный конфигуратор загрузочных скриптов, который настраивает функцию rootmount для init. Патч был создан "diff local local.modified> ramboot.patch"

4) cp / bin / busybox / usr / lib / initramfs-tools / bin / busybox

Это делает ваш файл initramfs.img немного больше, чем обычно, но разница составляет около 1,5 мегабайт, а не большая. Я хотел получить удобочитаемый вывод из df -h, который df урезанного занятого ящика не поддерживает. Если вы хотите сохранить 300-версию версии busybox, обязательно перейдите в cp / usr / lib / initramfs-tools / bin / busybox / small_busybox, а затем верните его прежнее имя / местоположение после шага 5.

5) update-initramfs -u

6) необязательно, вы, скорее всего, захотите создать /etc/grub.d/06_custom, с включенным в него аргументом ядра "ramboot" и заголовком, который подразумевает это.

(или 40_custom, если вы хотите, чтобы пункт меню ramboot находился в конце списка, а не в верхней части), например, 06_custom - не удалось включить ссылку для вставки, новичок здесь.

вам нужно будет указать правильную версию ядра и initrd.img-verion, а также uuid файловой системы вашего корневого устройства в этот файл 06_custom, иначе он не будет работать.

Вы можете найти информацию о ядре / initrd.img, просто заглянув в / boot / с помощью "ls /boot", и следующая команда должна вывести вашу корневую файловую систему uuid:

blkid | grep `df / | grep dev | cut -d '' -f1` | cut -d '"' -f2

Как только у вашего 06_custom будут правильные пути uuid, kernel и initrm.img и имена файлов, вы можете обновить grub и попробовать!

7) update-grub для добавления пользовательских записей в ваш файл /boot/grub/grub.cfg.

Примечание: у меня небольшая система с корневым разделом, включающая только около 1,2 г данных для копирования в оперативную память. Если в вашей системе недостаточно свободной памяти, этот скрипт будет загружаться нормально (или хотя бы попытаться!). Я нашел remastersys, и постоянные установки usb-casper не совсем подходят для моих нужд.

В настоящее время это используется на сервере scst-iscsi, и его единственная слабость в том, что если вы не сохраняете изменения в системе, не теряете питание или не совершаете какую-либо другую ошибку (init 0, о, нет, я забыл проверить в своем вернитесь к Subversion! катастрофа!) тогда система ramdisk не сделает ничего постоянного. У меня пока нет тонны эфирного времени в этой конфигурации, но так как я искал информацию такого типа, нашел много способов, которые не совсем подходили или просто смутили меня, я подумал, что положить это там. возможно, это спасет кого-то от небольшого удаления зубов * 8 ^)

remastersys и скрипты root-ro помогли мне в этом. они оба полезны, но разные проекты. remastersys упаковывает вашу работающую систему, чтобы либо развернуть / клонировать, либо просто запустить как версию системы live.iso, или, как мне кажется, резервную копию. root-ro представляет собой монтируемый в стиле объединения блочный ramdisk в стиле union, с возможностью записи на ramdisk и только для чтения block dev. затем для синхронизации вы можете просто перемонтировать blockdev rw, rsync один раз перейти на другой и перемонтировать его ro. Это было почти идеально, но я хотел, чтобы usb-ручка была размонтирована / удалена, и система поддерживала свое состояние, что и делает это решение.

root-ro внизу страницы - https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash

remastersys - http://www.geekconnection.org/remastersys/ubuntu.html

Вы можете легко rsync или скопировать -r из ramboot (смонтированного на /) и с диска / устройства, с которого он изначально работал при запуске в ram, чтобы сделать это изменение "постоянным". Я сохраняю uuid устройства, с которого загрузился ramboot, чтобы вы всегда могли найти его позже. Он находится в /.bootdisk_byuuid на виртуальном диске, и вы можете легко установить скрипт для монтирования этого устройства где-нибудь, выполнить rsync и снова размонтировать его, а затем назвать этот скрипт "ramtodisk" или как угодно.

NB! вы можете создать резервную копию файла /boot/initrd.img, чтобы в случае сбоя система по-прежнему загружалась. Я сохранил свой файл в / boot / initrd, пока работал над этим. когда у меня были глюки с grub / init, я просто отредактировал свой initrd, чтобы он указывал на файл backup / boot / initrd, и вернулся к отладке. Во всяком случае, я предполагаю, что это больше руководств, а не поваренная книга. повеселись! моей 1,2-гигабайтной системе 9:30 для загрузки на USB 1.1, 1:30-45 на USB 2.0 и ~=35 секунд на USB 3.0 для загрузки в оперативную память. с каждым годом все больше и больше сочного! *8^)

вот ramboot.patch

2a3,13
> parse_cmdline() {
>     RAM=""
>     for x in $(cat /proc/cmdline); do
>         case $x in
>           ramboot)
>               RAM="Yes" ;;
>             quiet)
>                 quiet=y ;;
>         esac
>     done
> }
66c77
<
---
>       parse_cmdline
90,91c101,164
<       # Mount root
<       mount ${roflag} ${FSTYPE:+-t ${FSTYPE} }${ROOTFLAGS} ${ROOT} ${rootmnt}
---
>       # Mount root - custom ramboot.patch
>       # By: Justin Perkins -- 4/25/12 Email: justin.perkins@vm-labs.com
>       if [ -z "${RAM}" ]; then
>               mount ${roflag} ${FSTYPE:+-t ${FSTYPE} }${ROOTFLAGS} ${ROOT} ${rootmnt}
>       else
>               mkdir /ramboot
>               mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboot
>               log_begin_msg "Detecting system resources"
>               size=$(df|grep ramboot|tr -s ' '|cut -d ' ' -f3)
>               datasize=${size}
>               size=$(expr ${size} + ${size} / 20 )    #5% more to be sure
>               freespace=$(awk '/^MemFree:/{f=$2} /^Cached:/{c=$2} END{print f+c}' /proc/meminfo)
>               log_end_msg
>               if [ "${freespace}" -lt "${size}" ] ; then
>                       echo "Not enough system RAM, ${freespace}k > ${size}k."
>                       echo "Attempting normal rootmount."
>                       mount ${roflag} ${FSTYPE:+-t ${FSTYPE} }${ROOTFLAGS} ${ROOT} ${rootmnt}
>               else
>                       if [ "$quiet" != "y" ] ; then
>                               tstart_min=$(date|cut -d ' ' -f4|cut -d : -f2)
>                               tstart_sec=$(date|cut -d ' ' -f4|cut -d : -f3)
>                               mount -t tmpfs -o size=100% none ${rootmnt}
>                               cd ${rootmnt}
>                               size=$(df -h|grep ramboot|tr -s ' '|cut -d ' ' -f3)     #reuse size
>                               echo "System size: ${size} (${datasize}k) this may take a couple of minutes."
>                               log_begin_msg "Copying system files into RAM"
>                               echo -e -n "\b"
>                               cp -rfa /ramboot/* ${rootmnt} &
>                               pid=$!
>                               while [ ! ${pid} == "done" ] ; do
>                                       alive=$(ps -o pid,args|grep -E ${pid}|grep -v grep)
>                                       alive=$(echo ${alive}|cut -d ' ' -f1)
>                                       if [ -z ${alive} ] ; then pid="done" ; fi
>                                       printf "."
>                                       sleep 1
>                               done
>                               log_end_msg
>                               echo ${ROOT} > ${rootmnt}/.bootdisk_byuuid
>                               tend_min=$(date|cut -d ' ' -f4|cut -d : -f2)
>                               tend_sec=$(date|cut -d ' ' -f4|cut -d : -f3)
>                               if [ ${tend_sec} -lt ${tstart_sec} ] ; then
>                                       tend_sec=$(expr ${tend_sec} + 60)
>                                       tend_min=$(expr ${tend_min} - 1)
>                               fi
>                               if [ ${tend_min} -lt ${tstart_min} ] ; then
>                                       tend_min=$(expr ${tend_min} + 60)
>                           fi
>                           tduration_min=$(expr ${tend_min} - ${tstart_min})
>                           tduration_sec=$(expr ${tend_sec} - ${tstart_sec})
>                           echo "Copy complete, duration: $tduration_min minutes $tduration_sec seconds."
>                           freespace=$(awk '/^MemFree:/{f=$2} END{print f}' /proc/meminfo)
>                           freespace=$(expr ${freespace} + 425000)         #this accounts for the temporal settling issue
>                           echo "You have approximately ${freespace}k free RAM after loading the ramboot."
>                           if [ ${freespace} -lt "502400" ] ; then echo "Warning! you have critically low system RAM free after ramboot." ; fi
>
>                   else
>                           cp -rfa /ramboot/* ${rootmnt}
>                           echo ${ROOT} > ${rootmnt}/.bootdisk_byuuid
>                           freespace=$(awk '/^MemFree:/{f=$2} END{print f}' /proc/meminfo)
>                           if [ ${freespace} -lt "102400" ] ; then echo "Warning! you have critically low system RAM free after ramboot." ; fi
>                   fi
>           fi
>           umount /ramboot
>   fi      #end custom ramboot.patch

06_custom

#!/bin/sh
exec tail -n +3 $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.
#uuid_<placeholder>, and vmlinuz-<placeholder>, and initrd.img-<placeholder> and
#set root='(hd0,2)' need to be replaced with your system's values, although, if you
#get the hd0,2 wrong, but the uuid correct, grub will grep around and find it anyhow. 
menuentry "Ubuntu, with Linux Custom-Ramboot" {
    recordfail
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set=root uuid_placeholder
    linux /boot/vmlinuz-<placeholder> root=UUID=<uuid-placeholder> ro ramboot
    initrd /boot/initrd.img-<placeholder>
}

Я думаю, что puppy linux теперь основан на Ubuntu, очень маленький и легко загружается в оперативную память.

Другие вопросы по тегам