LINUX.ORG.RU

Скачивание в ОЗУ под Линукс


0

0

Привет Линуксоиды!

Такая проблемма. Требуется чтобы ночью скачивалось некое файло, но не

на HDD а на виртуальный диск в ОЗУ. ОЗУ всего 128МБ. Также необходимо

чтобы через какое-то время содержимое виртуального диска скидывалось на

обычный (не виртуальный) диск. В BIOS выставлено автоматическое

отключение HDD при простое в 1мин.

Требуется это вот по какой причине. У меня старый жесткий диск и он скверно шумит при работе. Хочется же

чтобы комп выкачивал файло ночью и при этом не очень мешал спать. Если

бы не музыка HDD, то впринципе это возможно. Под NT реализовать

вышеописанное не удалось по причине частого обращения NT к диску :( Осталась надежда на Линукс, он же все может.

При установки с компакта, как я понял, Линукс создает виртуальный диск,

сгружает туда необходимые компоненты и потом работает уже с этого

виртуального диска. Значит можно же!

Я вижу перспективу реализации вышеописанного примерно так: 1. Надо скомпилировать ядро с поддержкой интернета, момеда, и других

необходимых в данном случае вещах. 2. Заставить как-то загружать Линуск сначала с HDD, а потом с

виртуального диска. Планируется выделить часть ОЗУ под виртуальный диск

с Линуксом (около 8-16 мб). Будет еще второй виртуальный диск, для

скачиваемых данных (вся оставшаяся свободной RAM'ка). Линукс же должен

работать полностью с загрузочного виртуального диска и не трогать HDD

чтобы тот не шумел попусту. 3. Надо органивать как-то, пока не знаю как, но думаю это не сложно

чтобы в определенное время или через определенный промежуток содержимое

виртуального диска скидывалось на подмонтированый логический раздел.

Для скачивания скорее всего придется использовать Wget, он и кучу фенек

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

звонила в Инет, а по достижении другого времени рвала связь и вырубалсь

(БП у меня ATX).

При всем этом совершенно не требуется графический режим, более чем

достаточно командной строки. Подскажите только как это реализовать. Имееются следующие дистрибутивы Линукса: Slackware 7.0, RedHat 7.1,

ZipSlack (урезаная версия Slackware). Извиняюсь за некраткость

описания, но думаю что в данном случае и вообще в любом случае когда

просят о помощи надо описывать проблемму полностью чтобы у того кто

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

где можно почитать о реализации моей задумки. Я вроде не тупой ламер

(хотя я могу и ошибаться) и готов разбираться в проблеме, подскажите

только в каком направлении копать...

anonymous

1) Linux всё равно будет часто дёргать диск

2) Вообще это не просто глупо, а ОЧЕНЬ ГЛУПО. Диск быстро сдохнет от постоянных включений-выключений.

Antichrist
()
Ответ на: комментарий от Antichrist

Не думаю

>1) Linux всё равно будет часто дёргать диск 

Даже если ядро и необходимые пакеты будут лежать на виртуальном диске?
А как же тогда Линукс работает на компах вообще без HDD? 
Ты ничего не перепутал?

>2) Вообще это не просто глупо, а ОЧЕНЬ ГЛУПО. Диск быстро сдохнет от >постоянных включений-выключений.

Ну я думаю не так уж и глупо, если он будет включаться раз в 3 часа, пожирать накачанную инфу и опять засыпать. Думаю для него это будет не хуже чем постоянно на него/с него что-то читать/писать...

anonymous
()

хм, раз в 3 часа - часто, когда нить просто не проснется :(

предлагаю - поставить дистр так чтобы всякое bin lib etc лежало на ro разделе, var home - на rw. Отключить проги-демоны использующие файло с этих разделов чтобы можно было отмаунтить (на всякий пожарный) Только боюсь с этим хуй чё выйдет - тот же pppd лок-файл делает (хотя по-моему отключить мона) своп тоже отрубить надо.

А вообще лучше взять четвёрку, да закинуть на шкаф в прихожей.

anonymous
()

Я бы сделал так:
1. Установку Linux выполнил бы в отдельные разделы на диске hda1 -/ /usr /lib .... , и обязательно /var и /tmp - в отдельный небольшой раздел hdaN (скорее всего они нам реально не понадобятся после окончания настройки);

2.Создал бы виртуальный диск, указав параметр ramdisk для lilo или командой rdev (ядру) его размер. Должно создаться устройство /dev/mem.

3. в процессе инициализации Linux (отредактировав файл /etc/rc.d/sysinit) создал бы на устройстве /dev/mem файловую систему ext2 и подмонтировал бы этот диск как /var (также нужно будет потом отредактировать /etc/fstab);

4. И все! Теперь у тебя должен быть Линукс, который почти всю свою активность будет проявлять в /var. Остается настроить Интернет и диспетчеризацию всех процессов (через cron) подключения_к_Интернет/скачивания на виртуальный диск -> в /var и переброску данных с ramdisk в hda? по мере его заполнения или выключения ПК.

PS. IMHO, когда ты все ЭТО закончишь настраивать - ты прилично уже будешь знать Линукс и делать с ним фантастичекие вещи!

PPS. Генерацию Линукса делать не надо, обычно все дистрибутивы уже имеют поддержку всего, что тебе понадобится: ramdisk, ip, ppp и внешнего модема (для REDHAT).

fan2k
()

А мне кажется, что разумно начать с изготовления загрузочной дискетки
(http://ruslandh.narod.ru/howto_ru/Bootdisk-HOWTO/index.html), которая работает с образом корневой файловой системы, которую закидывает в ОЗУ.
Если дописать потом несколько скриптов, получится один-в-один то, что ты хочешь.
Можно начать с уже готового образа, и исправить его.
Не обязательно загрузки осуществлять с дискетки, можно потом все это закинуть на винч или CD-rom.
А можно сразу взять дистрибутив, работающий с CD (blin, например), но скрипты тебе все равно понадобится исправлять
По-моему все это не слишко сложно, я делал похожую фишку, с винчестером в режиме r/o и несколькими ram-дисками

anonymous
()
Ответ на: комментарий от anonymous

О, вот это ближе к делу.

Что касается четверки в прихожей, я уже обдумал этот вариант. В будущем я планирую добыть старенький ноутбук и приспособить его для этой цели. Но пока надо решить проблему тем что имеется. Тем более вариант со скачиванием в РАМку, имхо, намного элегантнее (будет чем перед виндузятниками позвастаться).

Идею fan2k понял, будем работать. Если все получится, сваяю страничку где весь процесс будет подробно описан в помощь братьям линуксоидам.

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

Ссылочка полезная. Обязательно там поброжу. Я с самого начала так весь процесс и понимал. Что скорее всего придется сначала грузиться с какого-нибудь носителя (не HDD), а потом уже, на время бакапа содержимого РАМки подмонтировать скриптом раздел на HDD, скачивать туда файло и отмонтировать тем же скриптом. Тогда Линукс точно не должен диск мучать. Но сам Линукс, или активная его часть скорее всего должна лежать на виртуальном диске.

А почему R/O?? Разве в Read Only режиме при чтении диск не выходит из спящего режима??

anonymous
()

2anonymous (*) (2003-01-23 14:56:32.791) имеется в виду что то что нужно быстро закэшируется и дальше диск не будет дергаться.

Я бы сделал большой своп, примонтировал куда нибудь tmpfs (обязательно с опцией size=xxx, по дефолту его размер будет всего лишь половина ОЗУ) и скачивал сам файл туда, утром когда ты проснешься файл будет большей своей частью в свопе. Но а настроить все остальное чтобы не дергал диск это конечно твоя головная боль, может немножко помочь отключение обновления atime. По дефолту syslogd каждые 20 минут пишет строчку ---MARK--- в лог, да куча всего.

dilmah ★★★★★
()
Ответ на: Не думаю от anonymous

В случае, если /var на виртуальном диске и нет свопа - не будет дёргать.

Раз в 3 часа - всё же, слишком часто для HD. Одно включение и выключение равнозначно где-то 40 часам непрерывной работы, плюс к тому ещё и дополнительные факторы износа, которые ещё больше увеличивают вероятность физической порчи железки или электроники.

Antichrist
()

Шум

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

Японцы вообще извращение красивое придумали - системный блок в холодильнике. Во первых, холодильник и так шумит - то есть, неизбежное зло, а во вторых, с охлаждением проблем нет.

Antichrist
()

вариант с большим свопом и скачиванием в tmpfs хорош тем что не нужно скриптов которые бы по заполнении файлами ОЗУ скидывали это дело на диск, все будет автоматом. А при скачивании большого файла это вроде даже единственно возможный вариант.

dilmah ★★★★★
()

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

Купи себе памяти побольше, скачай blin 1.2.х - грузишься с компакта,
настройки кушаешь с винта (он может сохранять их), а файлы скачиваешь
в ram-диск.

jackill ★★★★★
()

а может неопасно это...

Я тоже слышал что техника чаще всего ломается при включениях/выключениях, но... я уже пять лет постоянно то включаю, то выключаю свой старенький монитор по надобности и без таковой и что же, он прекрасно работает. А еще жестаки в ноутбуках. Там из-за экономии энергии батарей постоянно ставят маленькое время ухода в standby режим при котором засыпает и HDD. И это считается нормальным, даже рекомендуют это дело. Конечно же я не отрицаю вреда standby режима для HDD, но может не так черт страшен как его малюют.

anonymous
()

Так всетаки?

Если положить /var на виртуальный диск и отрубить своп, то Линукс не будет дергать диск?
А отмаунтивать HDD надо или и так к нему обращений не будет?

LinuxCloner
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.