LTSP/LocalBoot: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
м (wikification)
Строка 1: Строка 1:
{{Викифицировать}}
== Организация загрузки терминалов с локальных жёстких дисков ==
В качестве «спасибо» всем, кто терпел меня, и в облегчение жизни тем, кто повторит такой путь.


Это не состоялось бы без терпеливого участия Led, Michael Shigorin, Michael A. Kangin
=== Постановка задачи ===
Дано: школьный класс с весьма немощными машинками (Pentium 166 + 32..64 RAM + HDD 0.5..2 Gb и Celeron 333 + 64..128 RAM + HDD 4..10 Gb), сетевую загрузку не поддерживают.


Дано: школьный класс с весьма немощными машинками (Pentium 166 + 32...64 RAM + HDD 0.5...2 Gb и Celeron 333 + 64...128 RAM + HDD 4...10 Gb), сетевую загрузку не поддерживают.
Надо: сделать их клиентами ALT Linux Terminal, расположив на локальном HDD <tt>initrd.img</tt> и <tt>vmlinuz</tt>, а остальное дисковое пространство отдать под swap.


Хотелось: сделать их клиентами Alt Linux Terminal?, расположив на локальном HDD initrd.img и vmlinuz, а остальное дисковое пространство отдать под swap
=== Шаги по реализации ===
 
* Для использования локального HDD под swap на сервере надо указать <tt>USE_LOCAL_SWAP=Y</tt> в <tt>/etc/lts.conf</tt>
1. Для использования локального HDD под swap на сервере надо указать USE_LOCAL_SWAP=Y в /etc/lts.conf
 
2. На флэшку с терминального сервера сбрасываем /var/lib/ltsp5/i586/boot целиком и /etc/lilo.conf [[LTSP/Lilo.conf|Lilo.conf]] можно сразу поправить, у меня выглядит так (понятно, с излишествами в виде рюшечек):


* На флэшку с терминального сервера сбрасываем <tt>/var/lib/ltsp/i586/boot</tt> целиком; <tt>/etc/lilo.conf<tt> можно сразу поправить, у меня выглядит так (понятно, с излишествами в виде рюшечек):
  map="/boot/map"
  map="/boot/map"
  lba32
  lba32
Строка 20: Строка 18:
  default="ALTLinuxTerminalClient"
  default="ALTLinuxTerminalClient"
  vga=NORMAL
  vga=NORMAL
  append="root=/dev/nfs nfsroot=/var/lib/ltsp5/i586,udp ip=dhcp"
  append="root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp ip=dhcp"
  message="/boot/splash/message"
  message="/boot/splash/message"
  boot="/dev/hda"
  boot="/dev/hda"
  image="/boot/vmlinuz"
  image="/boot/vmlinuz"
     label="ALTLinuxTerminalClient"
     label="ALTLinuxTerminalClient"
     initrd="/boot/initrd.img"
     initrd="/boot/initrd.img"
     read-only
     read-only</pre>


3. Берем пару старых маленьких hdd, цепляем их парой master/slave на шлейф. На второй шлейф – DVD-читалку. Для полного счастья втыкаем флэшку (купил дешевый контроллер pci – usb для комфорта). Все, заправочная станция готова.
* Берем пару старых маленьких HDD, цепляем их парой master/slave на шлейф. На второй шлейф – DVD-читалку. Для полного счастья втыкаем флэшку (купил дешевый контроллер PCI USB для комфорта). Все, заправочная станция готова.


4. Грузимся с установочного диска Alt Linux Terminal?, режим rescue (советовали грузиться с Live CD?, но я там не нашел /sbin/lilo).
* Грузимся с установочного диска ALT Linux Terminal, режим rescue (советовали грузиться с LiveCD, но я там не нашел /sbin/lilo).
 
  # ls /dev/hd* – а винты то мои живы? Живы, есть hda и hdb
  #ls /dev/hd* – а винты то мои живы? Живы, есть hda и hdb
  # ls /dev/sd* – а флэшка видна? Ага, sda1
  #ls /dev/sd* – а флэшка видна? Ага, sda1
  # mkdir /tmp/flash
  # mkdir /tmp/flash
  # mount -t vfat /dev/sda1 /tmp/flash – сразу ее примонтируем
  # mount -t vfat /dev/sda1 /tmp/flash – сразу ее примонтируем


5. Создаем разделы на жестких дисках
* Создаем разделы на жестких дисках:
 
  # fdisk /dev/hda
  fdisk /dev/hda
  p – что там есть?
  p – что там есть?
  d – всё, что не нужно
  d – всё, что не нужно
Строка 61: Строка 56:
  p – (любуемся)
  p – (любуемся)
  w – (запись и выход)
  w – (запись и выход)
То же самое проделываем со вторым диском /dev/hdb.


То же самое проделываем со вторым диском /dev/hdb
* Форматируем созданные разделы и монтируем:
 
  # mkfs.ext3 /dev/hda1
6. Форматируем созданные разделы и монтируем
  # mkswap /dev/hda2
 
  # mkdir /tmp/hda
  mkfs.ext3 /dev/hda1
  # mount /dev/hda1 /tmp/hda
  mkswap /dev/hda2
То же самое проделываем со вторым диском /dev/hdb.
  mkdir /tmp/hda
  mount /dev/hda1 /tmp/hda
 
То же самое проделываем со вторым диском /dev/hdb
 
7. Теперь «заправляем» раздел диска


* Теперь «заправляем» раздел диска:
  # mkdir /tmp/hda/boot
  # mkdir /tmp/hda/boot
  # mkdir /tmp/hda/etc
  # mkdir /tmp/hda/etc
Строка 81: Строка 72:
  # mkdir /tmp/hda/proc
  # mkdir /tmp/hda/proc


С флэшки копируем /boot в /tmp/hda/boot, lilo.conf – в /tmp/hda/etc. Грешен, здесь использовал MC.
С флэшки копируем подручными средствами <tt>/boot</tt> в <tt>/tmp/hda/boot/</tt>, <tt>lilo.conf</tt> – в <tt>/tmp/hda/etc/</tt>
 
Повторяем эту процедуру для второго диска.
Повторяем эту процедуру для второго диска.


8. Делаем диск загрузочным
* Делаем диск загрузочным
 
  # mount --bind /dev /tmp/hda/dev/
  # mount --bind /dev /tmp/hda/dev/
  # mount --bind /sys /tmp/hda/sys/
  # mount --bind /sys /tmp/hda/sys/
Строка 93: Строка 82:
  # lilo -r /tmp/hda
  # lilo -r /tmp/hda


9. Проделать сразу же пункт 8 для второго диска у меня не получилось (собственно, не получилось отмонтировать /dev /sys /proc) – поэтому shutdown, отцепляю Master, на Slave переставляю перемычку на Master, снова гружусь resque, и повторяю  
* Проделать сразу же предыдущий пункт для второго диска у меня не получилось (собственно, не получилось отмонтировать <tt>/dev /sys /proc</tt>) – поэтому shutdown, отцепляю Master, на Slave переставляю перемычку на Master, снова гружусь rescue, и повторяю  
 
  # mkdir /tmp/hda
  # mkdir /tmp/hda
  # mount /dev/hda1 /tmp/hda
  # mount /dev/hda1 /tmp/hda
Строка 102: Строка 90:
  # lilo -r /tmp/hda
  # lilo -r /tmp/hda


Все. У нас есть пара терминалов!
=== Итог ===
Я прекрасно понимаю, что это не истина последней инстанции, но у меня это получилось. Класс – 11 терминальных станций, и три залитых запасных винта.
Все. У нас есть пара терминалов! Я прекрасно понимаю, что это не истина последней инстанции, но у меня это получилось. Класс – 11 терминальных станций, и три залитых запасных винта.


PS: Сетевые карточки 10 мегабитные буду выбрасывать – тормоза ;-(
PS: Сетевые карточки 10 мегабитные буду выбрасывать – тормоза ;-(
PPS: Выпросил денег – серверу памяти до 2 гиг добавить.
PPS: Выпросил денег – серверу памяти до 2 гиг добавить.
== Благодарности ==
Статья написана в качестве «спасибо» всем, кто терпел меня, и в облегчение жизни тем, кто повторит такой путь.
Это не состоялось бы без терпеливого участия Led, Michael Shigorin, Michael A. Kangin


С уважением, Сергей Спиридонов
С уважением, Сергей Спиридонов


{{Category navigation|title=LTSP|category=LTSP|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=LTSP|category=LTSP|sortkey={{SUBPAGENAME}}}}

Версия от 17:51, 13 февраля 2009

Организация загрузки терминалов с локальных жёстких дисков

Постановка задачи

Дано: школьный класс с весьма немощными машинками (Pentium 166 + 32..64 RAM + HDD 0.5..2 Gb и Celeron 333 + 64..128 RAM + HDD 4..10 Gb), сетевую загрузку не поддерживают.

Надо: сделать их клиентами ALT Linux Terminal, расположив на локальном HDD initrd.img и vmlinuz, а остальное дисковое пространство отдать под swap.

Шаги по реализации

  • Для использования локального HDD под swap на сервере надо указать USE_LOCAL_SWAP=Y в /etc/lts.conf
  • На флэшку с терминального сервера сбрасываем /var/lib/ltsp/i586/boot целиком; /etc/lilo.conf можно сразу поправить, у меня выглядит так (понятно, с излишествами в виде рюшечек):
map="/boot/map"
lba32
prompt
compact
timeout="100"
install="menu"
default="ALTLinuxTerminalClient"
vga=NORMAL
append="root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp ip=dhcp"
message="/boot/splash/message"
boot="/dev/hda"
image="/boot/vmlinuz"
    label="ALTLinuxTerminalClient"
    initrd="/boot/initrd.img"

read-only

  • Берем пару старых маленьких HDD, цепляем их парой master/slave на шлейф. На второй шлейф – DVD-читалку. Для полного счастья втыкаем флэшку (купил дешевый контроллер PCI USB для комфорта). Все, заправочная станция готова.
  • Грузимся с установочного диска ALT Linux Terminal, режим rescue (советовали грузиться с LiveCD, но я там не нашел /sbin/lilo).
# ls /dev/hd* – а винты то мои живы? Живы, есть hda и hdb
# ls /dev/sd* – а флэшка видна? Ага, sda1
# mkdir /tmp/flash
# mount -t vfat /dev/sda1 /tmp/flash – сразу ее примонтируем
  • Создаем разделы на жестких дисках:
# fdisk /dev/hda
p – что там есть?
d – всё, что не нужно
n – (новый)
p – (primary)
1 – (номер один)
[задать размер — как на душу ляжет, требуется всего 3.5 мега]
t – тип
1- первого раздела
83 – Linux
a – сделать активным
1 – да, первый раздел
n – остальное отдадим под swap
p
2
[все остальное отдаем под свап]
t – (тип)
2 – (второго)
82 – (linux swap)
p – (любуемся)
w – (запись и выход)

То же самое проделываем со вторым диском /dev/hdb.

  • Форматируем созданные разделы и монтируем:
# mkfs.ext3 /dev/hda1
# mkswap /dev/hda2
# mkdir /tmp/hda
# mount /dev/hda1 /tmp/hda

То же самое проделываем со вторым диском /dev/hdb.

  • Теперь «заправляем» раздел диска:
# mkdir /tmp/hda/boot
# mkdir /tmp/hda/etc
# mkdir /tmp/hda/dev
# mkdir /tmp/hda/sys
# mkdir /tmp/hda/proc

С флэшки копируем подручными средствами /boot в /tmp/hda/boot/, lilo.conf – в /tmp/hda/etc/ Повторяем эту процедуру для второго диска.

  • Делаем диск загрузочным
# mount --bind /dev /tmp/hda/dev/
# mount --bind /sys /tmp/hda/sys/
# mount --bind /proc /tmp/hda/proc/

И, наконец

# lilo -r /tmp/hda
  • Проделать сразу же предыдущий пункт для второго диска у меня не получилось (собственно, не получилось отмонтировать /dev /sys /proc) – поэтому shutdown, отцепляю Master, на Slave переставляю перемычку на Master, снова гружусь rescue, и повторяю
# mkdir /tmp/hda
# mount /dev/hda1 /tmp/hda
# mount --bind /dev /tmp/hda/dev/
# mount --bind /sys /tmp/hda/sys/
# mount --bind /proc /tmp/hda/proc/
# lilo -r /tmp/hda

Итог

Все. У нас есть пара терминалов! Я прекрасно понимаю, что это не истина последней инстанции, но у меня это получилось. Класс – 11 терминальных станций, и три залитых запасных винта.

PS: Сетевые карточки 10 мегабитные буду выбрасывать – тормоза ;-( PPS: Выпросил денег – серверу памяти до 2 гиг добавить.

Благодарности

Статья написана в качестве «спасибо» всем, кто терпел меня, и в облегчение жизни тем, кто повторит такой путь.

Это не состоялось бы без терпеливого участия Led, Michael Shigorin, Michael A. Kangin

С уважением, Сергей Спиридонов