;)
  thinkIT.ru — первый IT-портал города  
 
 
Первый IT-портал города
 
 
Почта:
Пароль:
    Забыли пароль?
  • Такие разные близнецы
  • Хроника
  • На Байкал
  • Схватка
  • На грани
  • Все любят китов
  • Одержимая
  • Кориолан
  • Боевой конь
  • Ржевский против Наполеона 3D
  • Другой мир 4. 3D
  • Бедная богатая девочка

Кино в Таганроге

 

Рубрика: soft

9
Делаем из нетбука универсальный инструмент

Делаем из нетбука универсальный инструмент


Очередной upgrade для Acer one, на этот раз я предлагаю улучшить его функциональность  программно.

Автор: iNik | Добавлено: 13 Января, 2009 | Мало комментариев | Просмотров: 2521
www.opennet.ru
www.wtware.ru
http://www.slug.org.au/etherboot/
http://www.han.de/~gero/netboot.html
www.oszone.net

/dev/my/brain


Как-то часика в 4 утра меня посетила мысль о том, что таскать с собою нетбук и переносной винтчестер как-то не спортивно. Почему бы не объеденить два этих гаджета в одно устройство с дополнительным функционалом? Например было бы очень круто всегда иметь под рукой нечто похожее на хороший универсальный инструмент. Что-то типа программно-аппаратного комплекса для решения компьютерных задач.

Начал размышлять и сразу вспомнил про то, что для apple - компьютеров уже есть что-то подобное. В MacOS он называется Target Disk Mode.





Описание и требования

Режим FireWire внешнего жесткого диска позволяет Macintosh-компьютеру, оснащенному портом FireWire, использоваться в качестве внешнего жесткого диска для другого компьютера. Как только компьютер будет включен в режиме FireWire внешнего жесткого диска и будет подключен к другому компьютеру, на его жесткий диск можно будет записывать или считывать информацию.
Как использовать режим FireWire внешнего жесткого диска

1. Убедитесь, что компьютер, который вы хотите использовать как FireWire внешний жесткий диск выключен. Если это компьютер PowerBook или iBook желательно подключить его к электрической сети через сетевой адаптер.

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

3. Включите компьютер, который вы хотите использовать как FireWire внешний жесткий диск, и сразу же нажмите и удерживайте на его клавиатуре клавишу “T”, пока на его экране не появится логотип FireWire. Жесткий диск этого компьютера должен появиться на рабочем столе другого компьютера. Теперь вы можете работать с ним как с обычным диском, то есть читать и записывать информацию. (Если присоединенный компьютер использует Mac OS X 10.4 Tiger, вы также можете открыть System Preferences и выбрать пункт Target Disk Mode в разделе Startup Disk. После перезагрузки компьютер запустится в режиме FireWire внешнего жесткого диска)

4. После того, как вы закончите работать с этим диском, перетащите его картинку в Trash (Корзину) или выберите Put Away в меню File (Mac OS 9) или Eject в меню File (Mac OS X).


После еще получаса размышлений я окончательно проснулся и полез в инет искать что-нибудь подобное для windows или linux. Часовой поиск в гугле ничего не дал, по этому пришлось включать мозг. После того как он включился стало понятно, что придется придумывать что-то самому. Чем я собственно и занялся.
Ход моих размышлений:
  • В большинстве нетбуков IEEE1394 отсутствует совсем
  • USB не интересно из-за сложности сопряжения и невеликой скорости
Исходя из этого пришлось думаь над чем-то более универсальным, а поскольку в Acer Оne не так много коммуникационных портов, то я сразу подумал о LAN - соединении.
Плюсов, как оказалось придостаточно:
  • Новые возможности (чуть позже расскажу)
  • Универсальность
  • Кроссплатформенность
  • Легкость в настройке и подключении
  • Кроме того, он есть во всех современных компьютерах
Итак, суть самой идеи.
Нужно создать крохотный Linux дистрибутив, маленьким он должен быть, что б грузился быстро-быстро, но при всем этом он должен содержать необходимые компоненты.

Работать все это должно следующим образом:
Включаем нетбук. В меню загрузки есть, по крайней мере, два режима. Первый это рабочий, при выборе которого грузится обычная операционка в которой мы работаем. Второй ражим -- режим флешки. При выборе этого режима происходит загрузка мини - OS. Стандартным патчкордом (кроссовером, но савременные сетевые нормально понимают и patchcord) соеденяем нетбук с машиной. Адрес машина получает автоматически, а дальше заходим на ноутбук по ftp или по SAMBA и используем его как обычную флешку.

Необходимые компоненты этой мини-системы:
  • DHCP (это для раздачи ip-адреса "большому брату")
  • DNS (это что б к флешке можно было обратится по имени)
  • FTP (по нему будем заходить в хранилище)
  • SAMBA (если кому ftp не хватает)
На этом моя гениальная идея не заканчивается.
Если у нас есть DHCP и FTP, то почему бы из "простофлешки" не получить програмно-аппаратный диагностически-лечебный комплекс? Круто звучит!?
Суть его в следующем: если у нас на больщом компьютере не загружается система, но нам нужно эту систему восстановить или хотя бы просто скопировать с нее данные, мы можем загрузить этот компьютер без использования операционной системы, которая стояла на его винтчестере. Сделать это можно по сети, превратив его в бездисковый терминал. А сервером загрузки для него будет наш нетбук (в моем случае Acer one, но это не принципиально. Можно любой). Кроме спасательных операций таким образом можно заниматься диагностикой загружая образы с тетовыми программами (memtest, mhdd и т.д.)

Что такое загрузка по сети?

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

Как это работает?

Для загрузки по сети, компьютер должен получить

  1. идентификацию

  2. образ операционной системы и

  3. обычно, рабочую файловую систему.

Рассмотрим бездисковый компьютер (DC) у которого есть загрузочная сетевая ПЗУ(большинство современных материнских плат со встроенными сетевыми).


Возможно наличие нескольких идентичных бездисковых компьютеров. Как же их различать? У этих компьютеров (фактически у их сетевых карт) есть некоторая уникальная информация, это - сетевой Ethernet адрес. Каждая Ethernet карта в мире имеет уникальный 48 битный Ethernet адрес, так как каждый производитель Ethernet аппаратуры зарезервировал для себя блок адресов. По соглашению эти адреса записываются в виде шестнадцатеричных чисел разделенных двоеточием по группам, в каждой группе по две цифры, например - 00:60:08:C7:A3:D8 .

Используемые для получения IP адреса по данному Ethernet адресу протоколы называются Boot Protocol (BOOTP) и Dynamic Host Configuration Protocol (DHCP). DHCP - развитие BOOTP. В наших рассуждениях, если не указано иное, все что применимо к BOOTP также применимо к DHCP. (Фактически немного неправильно говорить, что BOOTP и DHCP всего лишь транслируют Ethernet адреса, в них предусмотрено обеспечение работы BOOTP и DHCP с любым типом аппаратных адресов, но большинство использует Ethernet.)

Пример обмена информацией BOOTP выглядит подобным образом:

DC: Привет, мой аппаратный адрес 00:60:08:C7:A3:D8, дай мне мой IP адрес.

BOOTP сервер: (Смотрит в базу данных адресов.) Твое имя thinkit, твой IP адрес 192.168.1.100, твой сервер 192.168.1.1, твой предполагаемый загрузочный файл /tftpboot/vmlinux.nb (и еще несколько частей информации).

После получения IP адреса, DC должен загрузить образ операционной системы и выполнить его.

Другой используемый тут Интернет протокол называется Trivial File Transfer Protocol (TFTP). TFTP подобен обрезанной версии FTP --- тут нет идентификации, и он работает поверх User Datagram Protocol (UDP), а не поверх Transmission Control Protocol (TCP). UDP был выбран вместо TCP для упрощения. Реализация UDP на DC может быть маленькой, посему код легко помещается в ПЗУ. Так как UDP блочно-ориентированный протокол, в отличие от потоково-ориентированных протоколов, передача следует блок за блоком, как например:

DC: Дай мне 1 блок файла /tftpboot/vmlinux.nb. TFTP сервер: Лови. DC: Дай мне блок 2.

 

и так далее, пока не будет передан весь файл. Переговариваясь, он подтверждает передачу каждого блока, и потеря пакета будет обнаружена и пакет будет передан через таймаут. Когда все блоки получены, сетевой boot ROM передает управление в точку входа образа операционной системы.

В конце, в случае запуска операционной системы, должна быть предоставлена корневая файловая система. Linux и другими Unix-ами обычно используется Network File System (NFS), однако возможны другие варианты. В этом случае код не должен находиться в ROM, а должен быть частью загружаемой операционной системы. Однако операционная система вместо реального диска должна запустить корневую файловую систему - NFS. Linux содержит требуемые для этого настройки.

Существует несколько режимов TFTP:

 

  • Простой tftp: обозначает, что клиент получает доступ ко всем файлам вашей системы. Это просто, но образуется большая дыра в безопасности (любой может получить по tftp ваш файл с паролями), но волновать это нас не должно, поскольку за обоими копутерами только мы :)

  • Безопасный tftp: tftp сервер использует систему chroot.2 для смены собственного корневого каталога. Все, что находится вне нового корневого каталога полностью недоступно. Так как chroot каталог становится новым корневым каталогом, поле hd в файле bootptab должно отражать эту ситуацию. Например: при использовании небезопасного tftp, поле hd содержит полный путь к загрузочному каталогу: /export/root/machine1. При использовании безопасного tftp с каталогом /export в качестве корневого каталога, каталог /export станет / , и поле hd должно быть /root/machine1.

В качестве загрузочных файлов мы должны использовать образы, которые необходимы нам. Это могут быть простенькие DOS-приложения или даже полноценные операционные системы, такие как WinPE или linux-аналоги, которые известны как liveCD.

Вот собственно и вся суть идеи.

P.S. для тех, кто очень боится LINUX:

Представляю статью об альтернативном варианте загрузке по сети, которую написал участник конференции OSZone Power User.


Начнем с плюсов моего метода
  • Не надо иметь выделенный RIS сервер (вообще не надо сервер) - не всегда он есть под рукой, а иногда за него надо платить...
  • Грузить можно любой 1.44, 2.88 и 5.76 (ага, и такие бывают!) образ дискеты как он есть, без изменений (единственное если прога на 2-х дискетах 1.44, то ее надо слить в один образ 2.88), плюс образ любого размера, который поместится в память клиента (речь уже об образе диска, а не дискеты)
  • Можно грузить различные линуксы, которые работают с RAM диска (например, thinstation - это RDP клиент, или те же утилиты от Paragon)
  • Можно грузить различные линуксовые бинарники (например memtest86+)
  • Легко модифицировать любую сеть для такой работы. Надо всего лишь на DHCP сервере сети указать IP нашего PXE сервера и имя загрузчика. Это в моей статье не описывается, так как уже было описано в первой статье (два параметра для DHCP - 066, 067), и админам думаю проблем не составит сделать нужные изменения)
  • Можно все нужные файлы таскать с собой на Flash диске - и тогда любой комп быстро превращается в PXE сервер (только надо перенастроить в tftpd32 - путь к файлам и IP адреса, и перезапустить его)

Есть и минусы

  • У tftpd32 есть баг - при одновременном обращении к нему больше одного клиента - жуткие тормоза на этапе загрузки pxelinux'а и образов. Если кому-то надо грузить, скажем, сразу много клиентов, то tftpd32 придется оставить только как DHCP, убрав в настройках галочку про TFTP Server (если, конечно, нет другого DHCP), а сам TFTP сервер взять другой (к сожалению, те серверы что я видел - коммерческие). Однако, при последовательном обращении клиентов - все летает. Так что как вариант просто грузить компы по очереди.
Что понадобится?

Совсем немного времени и трафика на скачивание нескольких небольших программ, а так же немного времени на настройку (при наличии знаний по сетям). Помимо этого:

  1. Компьютер с Windows и сетевой картой (линейку 9х не проверял, но и с ней не должно быть проблем, а под NT семейством и подавно). Как соединять два компа и настраивать сетку описывать не буду - и так много написано. Априори считается, что вы можете соединить между собой два и более компа по сетке.
  2. Компьютер, который будет загружаться по сети с наличием сетевой карты с поддержкой загрузки по сети (PXE)
  3. tftpd32 (вводим в Google и тыкаем на первую ссылку)
  4. pxelinux - часть пакета syslinux - (гуглим по "syslinux" или берем zip-архив тут)
  5. Программа для создания образа дискет. Например, WinImage или что-то подобное.
  6. рюмочка коньяка для храбрости :)
Поехали!
  1. Распаковываем tftpd32.exe, скажем, в С:\TFTP
  2. Распаковываем файл pxelinux.0 (из архива syslinux'а), memdisk (из sysylinux.zip/memdisk) а так же (опционально) memtest (sysylinux.zip/memtest) в C:\TFTP. Memtest для работы не нужен. Это просто известный тест памяти, который в нашем случае также можно загрузить по сети без дисковода и т.п.
  3. Tуда же (C:\TFTP) кладем образ любимой загрузочной дискетки (можно и не только дискетки – но об этом ниже). Например, dos.imz (для экономии места и/или ускорения загрузки можно даже сжатый (winimage) образ класть – imz, a можно и не сжатый ima). Образов может быть сколько угодно.
  4. Проверяем, что у нас в сети нету DHCP серверов. Например, если включен ICS (шара интернета), то его выключить на время экспериментов.
Конфигурируем tftpd32.exe

Запустили, нажали Settings, в "страшном" окне указываем Base Dirrectory – C:\TFTP. Потом выставляем галочки как на картинке:

Tfpd

Жмем на ОК, еще раз ОК, и перезапускаем tftpd32.

Далее настраиваем наш DHCP сервер:

Tfpd

  1. Выбираем сетевую карточку, к которой подключен пациент
  2. Ставим начало адресов, которые получит первый клиент (этот адрес и количество клиентов не должно пересекаться с вашим IP)
  3. Количество адресов (минимум 1)
  4. Имя загрузчика (pxelinux.0)
  5. Маска сети (мат-часть по сетям)
  6. Сохраняемся....

Далее на всякий случай перезапускаем tftpd32. Почти закончили :)

Конфигурируем загрузку

Создаем текстовый файл C:\TFTP\PXELINUX.CFG\default и редактируем его, скажем, так:

default local
prompt 1
label local
localboot 1
label dos
kernel \memdisk
append initrd=\dos.imz
label pqpm8
kernel \memdisk
append initrd=\pqpm8.imz
label mem
kernel \memtest

Подробную информацию можно найти в pxelinux.doc из syslinux'a.

Ну и наконец, устанавливаем на компе загрузку с сетевого адаптера по PXE.

Что получаем?

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

  • Просто ENTER – загрузится с локального диска (или по команде local)
  • Mem – загрузится memtest86 (тест памяти)
  • Dos – загрузится ваша досовская дискетка

Ну и далее только от фантазии зависит :) Можно, например, известные утилиты от Paragon тоже так грузить или тот же самыйй WinPE, можно тот же thinstation terminal client и т.д.

P.P.S. лично меня такое увеличение функциональности в ноутбуке или нетбуке очень радует. Но, у меня есть одна проблема, мешающая реализации этого мода -- это тотальное отсутствие времени :( Если на моем любимом thinkit есть люди, имеющие желание попрактиковаться в настройке чего-то более сложного и интересного нежели установка winamp'а, то я готов стать для них консультантом и тестером.
Теги: нетбук, ноутбук, dhcp, dns, ftp, tftp, netboot, acer one, мод, тюнинг, upgrade | Оценка: (6) |

Комментарии:

CyberFox CyberFox | 13 Января 2009 23:13ссылка сюда
Спасибо! Как всегда профессионально и подробно, только чтото под вечер не соображается куда бы это применить, ведь загрузить умершую машинку можно либо с вышеупомянутого LiveCD, либо с флешки... Хотя для других целей - реализация достойная, бездисковые терминалы иногда достаточно полезны, да и старые машинки использовать можно. (вспоминается древняя история про то как хр на 286 машинке грузился за 20сек от нажатия на кнопку Power, но там терминал-сервер на Citrix был реализован, что уже не бесплатно)
iNik iNik | 14 Января 2009 00:11ссылка сюдаответ на
Лет 15 назад мой дед подарил мне мой первый перочинный нож. Он сказал им можно делать все. После этого я лет 5 ему верил и всегда таскал его с собою. Просто потому, что верил. Это был очень простой нож. Спустя некоторое время я купил себе очень хороший нож, который позволяет мне не иметь всегда при себе плоскогубцы, отвертку, молоток, гаечный ключ, пистолет, зубочистку, пинцет и открывашку для бутылок и консервов. При всем при этом у него всего одно лезвие и рукоятка. Просто они очень хорошие.

Универсальные инструменты хороши тем, что они универсальны и чаще всего функционал их, хоть и урезан, но достаточен.
Я долго уходил от компакт-дисков, поскольку они менее надежны и менее функциональны, более громоздки (у меня их очень много). Я ушел от них с помощью usb-винчестера, на который легко помещался тот софт, который мне нужен. Поскольку я достаточно часто работаю не на одном месте таскать весь этот "it-багаж" стало легче.Но для загрузки "трупов" мне все-равно нужны были CD. А в этой статье я рассказал о том, как совместить в одном универсальном устройстве ноутбук, переносной винтчестер, сервер и средство диагностики.
Помимо всего этого, я считаю, что CD/DVD приводы (USB тоже, но не так скоро) уже очень скоро станут рудиментами и начнут отмирать (пример тому нетбуки), а вот NET во всевозможных применениях (пример тот же) наоборот будет бурно развиваться!
CyberFox CyberFox | 14 Января 2009 20:46ссылка сюдаответ на
Убедил ;)
iNik iNik | 14 Января 2009 21:57ссылка сюда
Все! можно начинать работу над этим проектом, поскольку винт уже впаян :)
CyberFox CyberFox | 16 Января 2009 22:20ссылка сюдаответ на
Ну, так) бубен тебе в руки, думаю не только мне будет интересно развитие этого проекта!
iNik iNik | 17 Января 2009 00:29ссылка сюдаответ на
Ну, я могу руководить проектом давая ценные указания. Есть желающие подумать и поковырять? Это не обязательно делать на одной машине и совсем не принципиально какая эта машина будет. Могу выделить отдельную часть блога, где будут документироваться и обсуждаться разработки.
Keasbey Keasbey | 15 Января 2009 00:41ссылка сюда
+5. отличная статья!
iNik iNik | 15 Января 2009 01:26ссылка сюдаответ на
thanks :)
iNik iNik | 21 Января 2009 17:16ссылка сюда
еще немножечко информации по этой теме: http://habrahabr.ru/blogs/netbook/49572/#habracut
http://unattendedxp.com/articles/wxpris/
Авторизуйтесь чтобы не быть Серой Анонимностью!

 

Играть в тетрис бесплатно он-лайн, без регистраций и смс =)






Время играть в тетрис!

Играть в тетрис проще простого. Жмем на иконку и вперед.


Найди нас везде!

Теперь ты можешь найти нас во всех популярных социальных сетях. Читай thinkit.ru где тебе удобно!


Банкоматы Таганрога

Теперь ты сможешь легко узнать, где именно находится ближайший банкомат.

 

 
  CreativeCUBE - разработка и поддержка сайтовПроизводство и поддержка сайтов
cCube.ru
  При воровстве с этого сайта ссылка обязательна.
Copyright © 2008-2012 thinkit.ru
Связаться с нами