Дистро что я могу загрузить в оперативку?
Существует ли модифицированная версия 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-память, и программа продолжает работу.
Я не пробовал программы, требующие больших ресурсов, но в моем случае:
- Совместное использование файлов продолжает работать и обмениваться файлами, даже если эти файлы находятся на жестком диске, отличном от файловой системы USB.
- VLC продолжает воспроизводить трансляцию радиостанции без проблем,
- Yakuake продолжает работу и делает то, что я запрашиваю, если я не хочу что-то от отключенного USB
- 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, очень маленький и легко загружается в оперативную память.