Использовать флешку как оперативную память linux
На ноуте полетел жёсткий диск (не беспокойтесь, на нём всё равно была винда, а важные файлики я успел утащить с умирающего диска). И денег на покупку ssd сейчайс нет. Мне нужно неделю прожить с этим ноутом, пока не вернусь к ПК. Есть флешка на 32 гб, но т.к. с флеш памяти линукс работает отвратительно (как и любая другая система), то мне нужен дистрибутив, который будет полностью грузится в ОЗУ (коей имеется всего 4гб), и работать там без лагов и подвисаний (летать). На десктопе стоит Арч, поэтому я смотрю в сторону этого варианта. Но может вы предложите что-нибудь получше. Задачи: сидеть в телеге и браузере (ну, хотя бы 10 вкладок). Мне не важно, сколько будет грузится система (я понимаю, что выгрузка в ОЗУ занимает время), но важно, чтобы после она работала шустро и не обращалась к постоянной памяти. Сохранение сессии на диск (а также периодическое во время работы) тоже необходимо. Извините за воду.
Любой LiveCD дистрибутив. У LiveCD есть squashfs архив, в котором находится сжатый образ корневой ФС, а запись производится на файловую систему, расположенную в RAM.
squahfs поможет уменьшить количество операций чтения, а запись будет быстро производиться в RAM.
Грузить целиком squashfs в память нет смысла.
Такой подход наиболее оптимален.
Если бы такое было, все бы так жили. Но существенно продолжительный запрет на своевременную запись на диск означает в лучшем случае потерю данных по пропаданию питания, а это никому не нужно.
Не выпендривайся, работай с флеш-памяти, реализовать твою хотелку не просто дороже, чем купить SSD, но ещё и натурально вредно. Чтение и так ускоряется дисковым кешем, запись и так ускоряется дисковым кешем ровно в тех пределах, в которых это допустимо. Лучше не будет.
А ты дочитай, куда он хочет производить запись и когда.
t184256 ★★★★★ ( 18.11.19 10:43:53 )
Последнее исправление: t184256 18.11.19 10:44:05 (всего исправлений: 1)
Хорошо, можно и без записи во время работы. Просто чтобы врубил, поработал и во время выключения результат сохранился
seprik_lo ( 18.11.19 10:46:16 )
Последнее исправление: seprik_lo 18.11.19 10:46:50 (всего исправлений: 1)
squahfs поможет уменьшить количество операций чтения,
О чём это вы? Именно по причине: «архив, в котором находится сжатый образ корневой ФС» чтение файлов на squahfs весьма далеко от хорошего, ибо оно придумано немного для другого: чтобы иметь возможность наложить изменения, записав его в другой изменяемый архив, пусть и небольшой. Потому liveCD с fs на ram, файлы на которых могут изменяться, но без сохранения изменений для следующих загрузок работают гораздо живее. Копировать же все каталоги вовсе не обязательно.
Только по ссылке версия устаревшая, сходи на форум, там более актуальные есть. Сохранение в файл или в каталог на разделе имеется.
Создай на флешке отдельный раздел или файл с файловой системой, либо настрой монтирование его в качестве контейнера для записи, либо сам монтируй и копируй данные.
Есть флешка на 32 гб, но т.к. с флеш памяти линукс работает отвратительно
Устанавливал на 8гиг флешку лубунту и дебиан LXDE, нормально все работало. Можно на флешку полноценно установить и отлично работать. Своп держать в ZRAM - будет отлично летать.
А это противоречащее моему видению мира утверждение можно чем-то подкрепить? Я всегда считал, что squashfs используется с rw-оверлеями, но никакой особой их поддержки не содержит. Я бы почитал.
austrumi. я раньше создавал initrd специально для этого, чтобы по сети грузиться, щас уже нет, там надо крохи initrd переделать, чтобы squashfs прямо в него засунуть
круче ничего пока не видел
ибо оно придумано немного для другого: чтобы иметь возможность наложить изменения, записав его в другой изменяемый архив, пусть и небольшой
Посмотрите как устроены LiveCD. Они используют squashfs, как архив с корневой ФС, который можно монтировать в качестве нижнего слоя в каскадной ФС и файловую систему, доступную на запись, обычно в RAM, как верхний слой в каскадной ФС.
И далее делают объединение нижнего слоя и верхнего в одну ФС, которая уже и будет смонтирована в качестве корневой ФС при старте Live системы.
В итоге файлы читаются из squashfs в сжатом виде, распаковываются и загружаются в память для выполнения. А запись производится на RAM.
В итоге это уменьшает объём считываемых данных.
squashfs - это лишь сжатый контейнер файлов, никаких отдельных контейнеров в процессе работы не создаётся. Если файл изменяется, то он записывается на ФС верхнего уровня.
infomeh ★★ ( 18.11.19 12:16:31 )
Последнее исправление: infomeh 18.11.19 12:17:46 (всего исправлений: 1)
Есть флешка на 32 гб, но т.к. с флеш памяти линукс работает отвратительно (как и любая другая система)
а, не, пациенту уже ничего не поможет
Да я сам их делаю. Я прекрасно понимаю, почему используют в таком виде - не надо заморачиваться с копированием, изменения накладываются поверх. Речь была о:
В итоге это уменьшает объём считываемых данных.
Ничего у вас не получилось в итоге.
Может лучше Puppy Linux? есть даже версия на АРЧ. Идеально для таких условий.
Ничего у вас не получилось в итоге.
Почему? :) Вы меня смешите.
Возьмём к примеру файл не в сжатом виде занимает 5 мб, а в squashfs в сжатом виде он уже занимает допустим 1Мб и при считывании с диска (с накопителя) будет прочитано не 5 Мб, а 1Мб, данных и распакованы в 5Мб.
Вот данные с запущенного LiveCD SystemRescueCD 5.32:
Как видите файл sysrcd.dat, являющийся сжатым squashfs архивом занимает 494 Мегабайта на носителе, а суммарный объём файлов на корневой ФС 8.4 + 11 + 460 + 121 + 159 + 19 + 559 + 948 + 44 составляет примерно 2329 Мб в распакованном виде.
Вот и получается, что при использовании squashfs операций чтения с накопителя будет меньше, потому как если нужно прочитать все файлы корневой ФС, то с накопителя прочитается 494M Мб, а не 2329 Мб.
infomeh ★★ ( 18.11.19 13:55:03 )
Последнее исправление: infomeh 18.11.19 13:56:33 (всего исправлений: 1)
у меня на это случай есть андроид стик. Я одно время с ним долго возился и даже когда купил ноут пользовался постоянно. Можно подключить клавиши и офис для него есть неплохой. Вот только принтер невозможно подключить, я через малину сделал доступ через сеть
Вы пытались вчитываться о чём вам пишут? Я вам говорю, что сжатый образ ramdisk-а вообще после разархивирования в память вообще ничего потом с носителя не читает. А у вас будет чтение, которое будет каждый раз разархивировать сжатые inod-ы, либо потребуется двойная память - под кеширование заархивированного inod-а и разархивированного.
Я вам говорю, что сжатый образ ramdisk-а вообще после разархивирования в память вообще ничего потом с носителя не читает
А я вам не про ramdisk говорю, а про squashfs файл.
Не путайте пожалуйста.
Вы путаете initrd (ramdisk) и squahfs файл.
Повторяю, как работает LiveCD:
1. Стартует загрузчик
2. Считывает в память образ ядра и initrd
3. Передаёт управление ядру
4. Ядро распаковывает, если нужно, initrd и монтирует его как начальную ФС
5. Сценарий init в initrd ищет накопитель со squashfs файлом на подключенных накопителях, находит накопитель и монтирует ФС накопителя
6. Монтирует squashfs файл в одно место, затем ФС для записи, обычно tmpfs в другое
7. Посредством aufs / unionfs / overlayfs каскадно монтирует эти две файловые системы, образуя новую ФС, состоящую из двух.
8. Делает переключение корня на эту новую объединённую ФС и происходит запуск системы
9. При запуске данные считываются из смонтированного файла squashfs сжатыми и распаковываются в памяти, но считываемый объём данные с накопителя сжатый
10. Запись происходит в память.
Вас сейчас послать? Не умеете вникать в нить разговора — лучше уж молчать.
И подумай про что написано и сравни о чём пишешь ты.
Если не понимаешь о чём я говорю и как работает LiveCD и squashfs в частности проходи мимо.
infomeh ★★ ( 18.11.19 15:30:28 )
Последнее исправление: infomeh 18.11.19 15:33:30 (всего исправлений: 1)
У вас не склероз, а вообще слабоумие. Автор интересовался о linux-ах в ОЗУ, вы порекомендовали squashfs, я откоментил именно вас, указав, что squashfs весьма тормозной, пусть и удобный для наложения изменений на ro-информацию. Выигрыш однокраного чтения сжатого проигрывает даже при несколькократном по причине сложности кеширования сжатого, а уж в сравнении с ориганльным вопросом, то есть чисто в ram - так и вообще бесконечно.
А при использовании Alpine Linux lbu есть еще один шаг - при вызове lbu commit верхний мутабельный слой сохраняется в tar.gz для использования при следующей загрузке
Акуеть . «мутабельный слой сохраняется в» А ТС про это не спрашивал. :)
Сохранение сессии на диск (а также периодическое во время работы) тоже необходимо.
Не понял, в чем проблема. Нету у него диска, ну пусть слой на флешку пишет
vertexua ★★★★★ ( 18.11.19 16:40:48 )
Последнее исправление: vertexua 18.11.19 16:41:12 (всего исправлений: 1)
Из неназванных дистрибутивов еще Porteus.
Leupold_cat ★★★★ ( 18.11.19 16:51:57 )
Последнее исправление: Leupold_cat 18.11.19 16:54:03 (всего исправлений: 1)
Если не смущает ФГМ разработчика, то Tiny Core (в комплектации CorePlus). Там это дело более-менее отлажено.
А так Porteus или даже SliTaz, да.
rebforce ★ ( 18.11.19 17:34:14 )
Последнее исправление: rebforce 18.11.19 17:35:15 (всего исправлений: 1)
А че тогда все в кашу мешаешь? Сделал, да не понял, что сделал?
не беспокойтесь, на нём всё равно была винда, а важные файлики я успел утащить с умирающего диска
Спасибо, что уточнил. От сердца отлегло.
Да это просто тупой троль - посмотри, он же ничего полезного вобще не предложил для решения, только «воняет». Не «закусывайся» с ним.
Очень часто у людей возникает желание или необходимость поставить Ubuntu на USB-накопитель и получить возможность пользоваться своей ОС на любом компьютере (лишь бы была возможность загрузится с USB).
В этой статье описывается процесс установки Ubuntu на USB-накопители.
Не стоит путать установку с простой записью образа. Подробнее о записи образов на на USB-накопители смотрите в Usb-creator-gtk.
Некоторые важные замечания и полезная информация собраны в статье Установка и использование Ubuntu на USB флешке. Стоит ознакомиться с ней перед началом установки Ubuntu на USB-накопитель.
Основные ошибки при установке Ubuntu на USB флешку и как с ними бороться
На флешке создаются разделы с файловой системой, которая при работе будет осуществлять большое количество записей на флешку (чем сократит ее время жизни). Это касается и разделов EXT4 и swap-раздела.
Разберем подробнее эти две проблемы
Альтернативы
Внешний жесткий диск не страдает малым числом циклов записи, однако, операционная система, работая с диском по довольно медленному интерфейсу (обычно - USB2. USB3 и e-SATA интерфейсы - значительно быстрее, но на момент написания статьи - еще не сильно распространены), также требует оптимизации. Тут пригодятся и noatime, а тоже стоит подумать - а нужен ли swap, да и /tmp полезно также разместить в памяти. А вот логи размещать в памяти - не стоит. Ну, а кроме того, внешний диск - это совсем другой размер и вес (!), да и падения для этих устройств - крайне опасны.
Внешний SSD диск - довольно дорогое решение. Тоже не маленький, хотя и легче внешнего жесткого диска и падений - почти не боится (как и флешка). И там тоже есть ограничение по числу циклов записи 8) , но контроллеры твердотельных дисков используют специальные алгоритмы переразмещения записываемых блоков с учетом знаний о том, сколько записей было сделано в каждый блок памяти. Эти алгоритмы значительно продлевают время жизни такого носителя информации.
Упрощенные алгоритмы переразмещения блоков используются и в некоторых (как правило - не самых дешёвых) флешках. Для их работы требуется как избыточное количество ячеек памяти, так и более быстрый и «умный» контроллер. Собственно «особый» контроллер и доп. (не доступная пользователю) память и повышают стоимость флешки… хотя, конечно основное повышение цены делают маркетологи, как обычно (!)
Можно пойти и другим путем - сменить дистрибутив. Есть дистрибутивы специально «заточенные» на работу с флешки (не берусь тут перечислять их все - их легко найти). Ярким представителем таких дистрибутивов является Puppy Linux (русифицированные сборки - PuppyRus Linux). Дистрибутив этот собран минималистично 9) и с использованием самых скромных (по размерам) программ. Это позволяет в процессе загрузки разместить всю файловую систему Linux в оперативной памяти 10) . А в процессе выключения системы все изменения в ФС (произведенные за время работы) записываются однократно обратно на флешку 11) . Изменения можно скинуть и в процессе работы, если есть опасения например в возможном внезапном отключении питания, ну или просто - что бы быть спокойным, что не потеряется ничего. А самое привлекательное для любителей Ubuntu в том, что есть сборки Puppy основанные на Ubuntu. Сайт проекта PuppyRus содержит много полезной информации и инструкций.
Установка
Дальнейшая установка Ubuntu ничем не отличается от установки на жесткий диск.
Выберите на рабочем столе Install Ubuntu и выполните установку по скриншотам:
Главное - не забудьте указать установщику что GRUB надо установить на флеш-накопитель (по умолчанию он ставится на первый жесткий диск в системе).
Довольно часто возникает желание или необходимость поставить Ubuntu на USB флешку и получить возможность пользоваться своей любимой ОС на любом компьютере (лишь бы была возможность загрузиться с USB).
Делается это просто - грузимся с LiveCD Ubuntu (или с LiveUSB 1) ) и ставим систему на флешку. При этом нам не важно какая ос установлена на компьютере. Всё что нужно это сам компьютер, LiveCD/USB и отдельная флешка, на которую и будем ставить систему.
Как вариант - можно в качестве компьютера использовать эмулятор: VirtualBox или VmWare, (только в них бывает сложно подключить USB для установки Ubuntu). При установке через эмулятор не нужен отдельный носитель с Live системой - образ LiveCD просто подключается в виртуальный привод CD-ROM.
И часто подход к этому вопросу, что называется, «в-лоб» разочаровывает низкой производительностью и тем, что флешка быстро умирает.
Многие смогут возразить, что имея такую флешку с установленной ОС они ей пользуются много месяцев или даже лет. Если уточнить, то выясняется, что пользуются то ей долго, а вот грузятся с нее редко и работают не подолгу. Если же работать с такой флешки ежедневно, по много часов, то «смерть» флешки не заставит себя долго ждать: 2-3 месяца, может больше, может меньше, зависит от флешки (из личного опыта создателя начальной версии этой статьи Sly_tom_cat).
Кроме того и сам процесс установки порой приводит к неприятным последствиям.
Но не надо отчаиваться и опускать руки…. Даже из не очень хорошего сырья можно сделать…, если не конфетку, то, по крайней мере, что-то съедобное!
Разберемся в причинах печального исхода и возможных методов улучшения ситуации.
4 Answers 4
The answer Sean suggests is one way of accomplishing this, another would be to just create a swapfile on the stick, that way you can also use your stick for other files. Like so:
find out where the stick is mounted. Look in nautilus or issue mount in the terminal
create an empty file of dd if=/dev/zero of=/media/YOURSTICK/swap bs=4096 count=131072 . This creates a 512 MB file (512 * 1024^2 / 4096 = 131072)
create the swap and enable it sudo mkswap /media/YOURSTICK/swap && swapon -p 1000 /media/YOURSTICK/swap
The swap on your USB stick won't be faster than one residing on your HDD. Also it will kill the stick on the long term, writing does that to USB sticks.
To increase the usable amount of ram check out zram.
I have already one swap partition ,i heard that more than one swap partition may lead to the problem,i wont use it in regularly ,but i want to use it when system have heavyload only.
If you have a workload where things are regularly being pulled in and out of swap to the extent where faster swap makes a significant difference, you're probably better off getting more RAM. Whether your swap is on a hard drive or USB drive, it is going to be orders of magnitude slower than real RAM.
Plug-in your USB drive and make sure there are no important files on the drive. Delete all the files on the drive or re-format it and go to a Terminal.
First, we need to unmount the drive if Ubuntu auto-mounted it when you plugged it in:
Where 'drive-label' is the name you see for the USB drive when it is mounted.
Or you can also do it this way:
Where 'sdx1' is your drive/partition letter. You can find it by running this command:
Now, we'll create the Swap file on your USB drive:
Where 'sdx1' is your drive letter we figured out from the output of 'fdisk -l' command above.
Now, turn on your new Swap:
In order to make sure your new Swap is working, you can take a look at the output of this command:
Можно ли увеличить оперативную память ноутбука на линукс за счет флэшки?
Оперативную - нет. А своп создать можно.
Что значит создать своп?
Т.е. если вам ОЗУ не хватает для какой-нибудь игры, это не спасёт, играть будет невозможно. А вот открыть какой-нибудь мегадокумент, не влезающий в ОЗУ станет возможно. Вот только работать будет проблематично.
Да ладно, это ещё неплохо. На фоне людей, которые агрейдят память смартфона установкой проги.
У меня не хватает озу для работы на виртуальной машине и хостовой одновременно,т.е. когда я работает виртуалка если я запускаю какой либо процесс на хостовой ос она зависает.Поможет ли этот способ в моем случае?
Да, возможно. Советую создать своп файл на флешке (если у вас своп ещё не используется)
Именно с флэшкой, скорее всего, своп будет работать адски медленно. Если разместить своп на ssd - будет вполне комфортно.
Да, но если у него всё виснет именно из-за нехватки ОЗУ, то, хоть и медленно, но работать будет. Другое дело, я ХЗ, отчего там виснет на самом деле. Кстати, зависит ещё и от флешки, я в кноппиксе создавал своп файл на флешке, было терпимо
tiinn ★★★★★ ( 03.07.19 14:36:35 )
Последнее исправление: tiinn 03.07.19 14:37:37 (всего исправлений: 1)
Не лучше ли на обычном HDD (или что там, в ноуте) свап нарезать?
kravzo ★★ ( 03.07.19 14:40:31 )
Последнее исправление: kravzo 03.07.19 14:41:57 (всего исправлений: 1)
На HDD — не лучше. Несмотря на то, что обычные флешки уступают хардам по скорости последовательного чтения, но время случайного доступа у них на порядок меньше, в случае свопа это решает.
Может, и лучше. А ещё лучше, если бы ТС сказал нам объём ОЗУ, параметры виртуальной машины, наименование дистрибутива и результат команды swapon -s.
Обычные флэшки дно по скорости на запись, так что нихрена не лучше.
Зависание — проблема ядра. Своп не поможет.
людей, которые агрейдят память смартфона установкой проги.
Но на телефоне можно проапгрейдить память установкой проги.
Фишка в том, что приложениям не выделяется вся память телефона, есть лимит на размер кучи. Лимит прописан в build.prop (или где там ещё в Android настройки), и установлен на этапе сборки прошивки. Если есть рут, можно перепаковать initramfs с новым значением, и тогда произойдёт «апргрейд». Приложения будут выгружаться из памяти чаще, но зато отдельным приложениям станет доступно больше памяти.
Подготовка к установке
Скачайте образ системы отсюда. Если не планируете запускать систему на машинах с более 4 Гб оперативной памяти предпочтительней выбирать 32-х разрядную.
А в чем отличие от LiveUSB
Собственно LiveUSB, созданная с файлом сохранения, по сути своей мало отличается от Ubuntu установленной на флешке. Вместе с тем, есть и ряд принципиальных различий.
Коротенько, как устроена и работает LiveUSB:
При создании LiveUSB в файловую систему флешки (FAT) копируется содержимое CD (или DVD), на флешку устанавливается простенький загрузчик syslinux, и в корне флешки создается специальный файл сохранения (внутри которого создается файловая система EXT2) - casper.rw
Когда такая флешка загружается, то корень файловой системы монтируется «хитрым» способом: сначала как корень монтируется специальный файл с упакованной, доступной только для чтения файловой системой (SquashFS), а затем «поверх» него монтируется casper.rw в режиме запись/чтение. Получается, что все необходимые для работы системы файлы лежат в SquashFS, а новые и обновленные файлы - в casper.rw. При запросе к файлу сначала проверяется нет ли его в casper.rw, а потом он ищется в SquashFS, таким образом даже системные файл можно обновить и работать с новыми версиями.
Каталоги /tmp, /run, /var/lock на LiveUSB тоже монтируются в память (tmpfs)
Что же мы получаем применительно к интересующим нас аспектам: Запись на флешку идет примерно в таком же объеме и его не получится сократить (добавив noatime в опции монтирования в /etc/fstab) т.к. монтирование корня происходит на этапе инициализации ядра системы и в /etc/fstab Live системы просто нет монтирования корня.
Производительность по записи (собственно это больное место мы особо и не рассматривали при разговоре об Ubuntu установленной на флешку) здесь будет еще похуже, запись идет в ФС EXT2, а она лежит в фале на ФС FAT.
Дополнительно, флешка всегда хранит один и тот же набор системных файлов в SquashFS и любые обновления системы будут занимать место в casper.rw, но не будут освобождать место в SquashFS и это может стать проблемой при небольшом объеме флешки.
В «сухом остатке»- у LiveUSB нет особых преимуществ 12) перед правильно установленной на флешку системой, а недостатки - присутствуют.
In windows it is possible to use usb flash drive as a virtual ram. I wonder if it is possible to do so in ubuntu? If it is, how could one do it?
[Edit]: I mean Ready boost equivallent for ubuntu. I know that it is not a perfect replacement for ram and it is not advisable for longterm use.
Is creating swap file in a usb flash drive similar to it? Will it demonstrate performance gains over a swap file in a Hard Disk Drive?
If you mean to use it like Vista and Windows 7's Readyboost feature, you have to format it as a swap partition and assign a swap file to it. If you want to use it as extra system RAM, you can't.
"Подводные камни"
Есть одна досадная ошибка инсталлятора (можно сказать особенность 6) ), которая не позволяет установить Ubuntu на тот же физический диск с которого загрузился Live образ 7) . Т.е. если вы захотите загрузившись с флешки на нее же и поставить Ubunut (в другой раздел) - то вам это не удастся. Обойти эту «особенность» можно удалив «руками» запись о примонтированном разделе с флешки из /etc/mtab.
Как правильно ставить GRUB
А тут все просто - загрузчик (GRUB) надо ставить на флешку. Если вы оставите предложенную установщиком установку (на первый жесткий диск в системе) то в MBR жесткого диска пропишется часть кода GRUB, который станет искать остальную часть своего кода на разделе, куда будет записан /boot при установке системы (т.е. на флешке). Вытащив флешку из компьютера вы не дадите коду GRUB-а на жестком диске найти свое продолжение. И компьютер не сможет загрузить ОС. Восстановить работу GRUB - просто. Если же надо восстанавливать загрузчик Windows, то стоит поискать информацию по восстановлению загрузчика на любом профильном форуме. Но лучше быть внимательным при установке, и не создавать себе лишнюю работу.
Подведем итоги
Если мы хотим пользоваться системой на флешке долго, и не получить разочарования от потери данных, то нужно делать так:
swap не создаем (а если на компьютере есть раздел swap - то говорим инсталятору - не использовать его).
прописываем в /etc/fstab монтирование /tmp, /run, /var/lock (и, возможно, /var/log) в tmpfs (не забываем про ограничения размеров).
При использовании системы нужно регулярно делать резервную копию важных данных на другой носитель 5) (не забываем про невысокую надежность ОС на флешке и возможную внезапную кончину флеш-памяти).
А при использовании на компьютере с небольшим объемом оперативной памяти (1Гб и менее) стараемся не запускать по много ресурсоёмких задач одновременно или изучаем и настраиваем ramzswap.
Кроме указанного, можно применить и другие приемы оптимизации производительности системы (эти приемы выходят за рамки данной статьи, но их легко найти в Internet-е).
А главное - никогда не забываем про вывод, к которому мы пришли в начале этой статьи. Повторю:
ОС, установленная на флешку не может быть такой же надежной и долговечной как установленная на жесткий диск.
Подготовка USB-накопителя
Запустите программу GParted.
Выберите устройство, на которое вы собираетесь установить Ubuntu.
Отформатируйте его в файловую систему Ext2 или Ext4. Так-же можно разделить USB-диск на 2 раздела для того, чтоб его можно было использовать по прямому назначению (перенос файлов с одного компьютера на другой). Для этого первый раздел раздел отформатируйте в FAT32 (для того, чтобы раздел был виден в Windows), вторым разделом выберите файловую систему Ext2 или Ext4 под Ubuntu. На второй раздел желательно выделить минимум 6 Гб, чтобы можно было не переживать за нехватку места для установки дополнительных программ.
Загрузка
Перед тем как загрузится, убедитесь, что в BIOS первым загрузочным устройством выбран USB или CD-ROM, в зависимости от того, с чего вы производите загрузку. В BIOS можно попасть нажав клавишу Del для стационарных компьютеров и F2 или F12 для ноутбуков. О том, как выбрать устройство для загрузки смотрите в интернете или читайте инструкцию к вашему компьютеру.
Если все правильно сделано, вы увидите перед собой загруженную с Live CD систему.
Как продлить жизнь флешке
Флеш-память отличается от жестких дисков тем, что количество циклов записи обычно ограничено числами 10 и 100 тысяч записей (для разных типов флеш-памяти).
Для жестких дисков такой параметр (число циклов записи) вообще почти никогда не указывается - там быстрее происходит механический износ элементов диска. А магнитный слой на поверхности диска может перезаписываться почти бесконечно.
Схемы памяти с выдерживающие до 10 тысяч записей стоят гораздо дешевле схем выдерживающих 100 тысяч… как вы думаете - какими схемами комплектуются недорогие флешки, нашедшие широкое распространение?
Но и высокая цена флешки тоже не говорит о повышенной жевучести - тут ключевое слово - тип памяти - MLC (Multi-level cell, многоуровневые ячейки памяти) выдерживает порядка 10 тысяч записей; SLC (Single-level cell, одноуровневые ячейки памяти) — более 100 тысяч. Более дорогие флешки действительно живут дольше, но достигается это другими средствами (о них - чуть позже)
Кажется что 10/100 тысяч - это много, но разберемся как эти циклы записи «съедаются» при работе ОС.
Запись на флеш-носитель происходит по-блочно (как правило - десятки килобайт), и запись последовательно двух байт в файл с интервалом между записями в несколько минут вызовет две записи одного и того же блока памяти (т.е. обновятся два раза несколько тысяч ячеек).
журнал (для журналируемых ФС) - чем чаще он пишется, тем выше вероятность сохранения целостности ФС при сбоях системы или питания. Частота записи в журнал, как правило изменяема, но значения по умолчанию не совсем подходят для работы с флеш-памятью, а увеличение периодов между записью - приводит к увеличению вероятности потери целостности ФС при сбое.
i-node (специальная структура в которой сохраняется заголовок файла или каталога) - при каждом обращении (даже чтение) к файлу или каталогу в i-node прописывается дата/время последнего обращения. Казалось бы - всего несколько байт, но вспомним про блочную запись, и том, что запись их идет при каждом обращении к файлу (прочитали байт - изменились, еще байт - опять изменилось).
Кроме того, нужно не забывать, что лимит циклов записи действует на каждую ячейку памяти. И если на флешке в один и тот же блок сделать 10 тысяч записей, а в другие сделать по 100 записей, то блок, куда было записано 10 тысяч раз, на записи 10тысяч + сколько-то «умрет», а контроллер флешки, обнаружив 1 битый блок, может заявить, что умерла вся флешка. А даже если он этого не сделает, то этот блок будет содержать важную для работы системы или ФС информацию 2) , и результат будет практически тем же - внезапная остановка системы и невозможность прочитать данные с флешки. (!)
Как бороться со всем этим?
Для начала поймем и примем как данность:
Осознав это поймем, что и
А поняв и приняв это, задумаемся: а нужна ли для такой системы надежность журналируемой ФС (такой дорогой ценой как сокращение времени жизни флешки и системы на ней)?
Однозначно - нет.
Итак, нам потребуется EXT4 с отключенным журналом 3) . Если разбираться с отключением журнал в EXT3/4 не хотите - просто воспользуйтесь EXT2.
Есть и другие ФС, и настройки, которые могут продлить жизнь флешке. Эти решения могут дать большие преимущества. Если есть желание - то поищите другие варианты. Особо обращает на себя внимание опция ssd файловой системы btrfs (!?)…
Избавиться от записи даты/времени последнего доступа к файлам и директориям в i-node помогают опции монтирования файловых систем noatime. Её, после установки системы, нужно будет прописать в файле /etc/fstab для всех разделов системы, которые расположены на флешке.
Вообще, эти опции не только количество записей на флешке сокращают, но и на жестком диске скорость работы ФС увеличивают.
Временные файлы и swap.
Современные компьютеры редко страдают недостатком оперативной памяти (перелом в этом отношении случился в компьютерной индустрии после значительного удешевления схем памяти). И уже при 1ГБ оперативной памяти Linux довольно редко обращается к swap, если не запускать ресурсоёмкие задачи (например кодирование высококачественного видео или редактирование огромных изображений). Если памяти 2ГБ или больше, то заставить Linux использовать swap вообще довольно сложно.
Полное отсутствие swap грозит неадекватным поведением системы при исчерпании ресурсов оперативной памяти, но вспомним, что мы с вами осознали - система на USB флешке не может быть надежной по определению. Вывод напрашивается сам собой - swap для системы на флешке - не нужен. А на компьютерах с малым объемом памяти нужно быть осторожным и стараться не запускать много приложений одновременно. Можно так же настроить ramzswap (он же - compcache): своп в оперативную память с упаковкой свопируемых станиц.
Ресурсы оперативной памяти помогут и со временными файлами - достаточно смонтировать временный каталог системы /tmp в диск организованный в памяти. Для этого нам пригодится замечательная файловая система tmpfs (даже название говорит, что она хорошо подходит для /tmp).
В /etc/fstab нужно прописать строчку:
В примере максимальный размер /tmp задан как 32 Мегабайта. Размер можно задать другой, но если ограничения не задать, то «сдуревшее» приложение, которое будет писать бесконечно во временный файл, может подвесить вашу систему.
Размер /tmp важно выбрать правильно т.к. в нем будут хранится самые разные вещи. Например видео с Youtube вы не сможете посмотреть до конца если файл с видео не влезет полностью в ваш /tmp.
Точно также стоит поступить и с /run (ранее известный как /var/run) и /var/lock (в этих каталогах хранится служебная информация актуальная только на время текущей сессии, объем - малюсенький, а вот обновления довольно регулярны). На них лимит размера можно не задавать. Можно пойти дальше и разместить в памяти и логи (/var/log), однако без логов на устройстве постоянного хранения данных (в нашем случае - на флешке) будет крайне трудно разобраться со сбоем системы, вызывающем перезагрузку (после перезагрузки - все что было в памяти - потеряется и логи будут «пустые» - только то, что туда запишется с момента загрузки системы). Лимит size для /var/log стоит задавать порядка 6-10Мб (для типичного десктоп варианта).
Общий вид файла /etc/fstab будет примерно таким:
В примере на флешке создан корень и отдельный /home 4) . Если есть еще какие-то разделы с флешки - то им тоже прописываем noatime,nodiratime.
Скорость записи на флешку - тоже «больное место» нашей системы, и сокращая число циклов записи на флеш мы не только продлим время ее жизни, но и скорость работы ОС улучшим.
Запись образа
После того, как образ загрузился, его надо записать на CD или USB-накопитель.
На USB носитель образ проще всего записать при помощи UNetbootin. Эта программа существует под большинство популярных ОС (Windows, Linux, Mac) и достаточно проста в обращении. Все что потребуется – указать путь к скачанному образу и выбрать диск, на который будет записан образ.
Можно обойтись без записи образа на какие-либо носители воспользовавшись виртуальной машиной, например VirtualBox или QEMU. Достаточно лишь пробросить в виртуальную машину USB-накопитель. Дальнейшие инструкции для этого метода не поменяются.
Читайте также: