Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

Linux Bootdisk HOWTO

6. Помещение их вместе: Создание диска (ов).

Теперь у Вас есть ядро и сжатая корневая файловая система. Если Вы создаете загрузочный диск, проверьте их размеры, чтобы убедиться, что они оба поместятся на одном диске. Если Вы делаете две дискеты загрузоную + корневую проверьте помещается ли корневая файловая система на одной дискете.

Вы должны решить, использовать LILO для загрузки или bootdisk ядро. Альтернатива - копировать ядро непосредственно на дискету и загружаться без LILO. Преимущество использования LILO - возможность указать некоторые параметры ядра, которое может быть необходимы для инициализации аппаратных средств (проверьте файл /etc/lilo.conf в вашей системе. Если он существует и имеет строку "append = ... ", Вам вероятно нужно это свойство. Неудобство использования LILO - усложнение создания загрузочного диска, и немного большее количество пространства. Вы должны установить маленькую отдельную файловую систему, которую мы назовем ядерной файловой системой, куда Вы перенесете ядро и несколько других файлов необходимых LILO.

Если Вы собираетесь использовать LILO - читайте; если Вы собираетесь перемещать ядро непосредственно, пропустите до секции "Без использования LILO".

6.1. Перенос ядра с LILO

Первым делом - создайте маленький файл конфигурации LILO. Он должен выглядеть так:
          boot      =/dev/fd0
          install   =/boot/boot.b
          map       =/boot/map
          read-write
          backup    =/dev/null
          compact
          image     = KERNEL
          label     = Bootdisk
          root      =/dev/fd0

Для объяснения этих параметров, см. документацию пользователя LILO. Вы, вероятно, захотите добавить append= ... строку к этому файлу с /etc/lilo.conf файла на вашем жестком диске.

Сохраните этот файл как bdlilo.conf.

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

Сначала, выясните насколько большой должна быть файловая система. Возьмите размер вашего ядра в блоках (размер, показанный "ls -l KERNEL" разделенный 1024 и округленный вверх) и добавьте 50. Пятьдесят блоков - приблизительно пространство, необходимое для inodes плюс другие файлы. Вы можете вычислить это число точно, если Вы хотите, или используете 50. Если вы создаете двух-дисковый набор, Вы можете также переоценить пространство, т.к первый диск используется только для ядра. Назовите это число KERNEL_BLOCKS.

Поместите дискету в привод (для простоты, которую мы примем /dev/fd0) и созйте ext2 ядерную файловую систему на ней:

     mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOCKS
``-i 8192 " означает, что мы хотим один inode на 8192 байта. Затем, смонтируйте файловую систему, удалите lost+found каталог, и создайте dev и boot каталоги для LILO:
      mount /dev/fd0 /mnt
      rm -rf /mnt/lost+found
      mkdir /mnt/{boot,dev}
Затем, создайте устройства /dev/null и /dev/fd0. Вместо того, чтобы искать числа устройства, Вы можете просто скопировать их с вашего жесткого диска используя -R:
     cp -R /dev/{null,fd0} /mnt/dev
LILO нужна копия загрузчика начальной загрузки, boot.b, которую Вы можете взять с вашего жесткого диска. Она обычно сохраняется в /boot каталоге.
      cp /boot/boot.b /mnt/boot
В заключение, сопируйте конфигурационный файл LILO , который Вы создали в последней секции, наряду с вашим ядром. Оба могут быть помещены в корневой каталог:
 
   cp bdlilo.conf KERNEL /mnt 
Все, что нужно LILO теперь на ядерной файловой системе, так что Вы готовы запустить ее. Флажок LILO -r используется для установки загрузчика начальной загрузки в другом корне:
 
    lilo -v -C bdlilo.conf -r /mnt
LILO должен выполниться без ошибок, после чего ядерная файловая система должна выглядеть так:
  total 361 
    1 -rw-r--r--   1 root  root      176 Jan 10 07:22 bdlilo.conf 
    1 drwxr-xr-x   2 root  root     1024 Jan 10 07:23 boot/ 
    1 drwxr-xr-x   2 root  root     1024 Jan 10 07:22 dev/ 
  358 -rw-r--r--   1 root  root   362707 Jan 10 07:23 vmlinuz 
  boot: 
  total 8 
    4 -rw-r--r--   1 root  root     3708 Jan 10 07:22 boot.b 
    4 -rw-------   1 root  root     3584 Jan 10 07:23 map 
  dev: 
  total 0 
    0 brw-r-----   1 root  root   2,   0 Jan 10 07:22 fd0 
    0 crw-r--r--   1 root  root   1,   3 Jan 10 07:22 null 

Не волнуйтесь, если размеры ваших файлов отличаются.

Теперь оставьте диск в приводе, и идите к секции "Установка ramdisk слова".

6.2. Перенос ядра без LILO.

Если Вы не используете LILO, перенесите ядро на загрузочный диск dd командой:
     % dd if=KERNEL of=/dev/fd0 bs=1k
     353+1 records in
     353+1 records out
В этом примере, dd записал 353 полных записи + 1 частичную запись, так что ядро занимает первые 354 блока дискеты. Назовите это число KERNEL_BLOCKS, и запомните его, потому что Вы используете его в следующей секции.

В заключение, установите дискету как корневое устройство, затем устанавливать загрузку корня на чтение - запись:

     rdev /dev/fd0 /dev/fd0
     rdev -R /dev/fd0 0
Будьте внимательным - используйте прописную букву -R во второй rdev команде.

6.3. Установка ramdisk слова .

Внутри образа ядра есть ramdisk слово, которое наряду с другими опциями указывает, где должна быть найдена корневая файловая система. Слово определено на /usr/src/linux/arch/i386/kernel/setup.c и интерпретируется следующим образом:
 bits  0-10:     Смещение начала ramdisk, в 1024 байтовых блоках 
 bits 11-13:     не используется 
 bit     14:     Флаг указывающий, что ramdisk будет загружаться 
 bit     15:     Флаг указывающий запрос подтверждения перед 
                 загрузкой корневой файловой системы 
Если бит 15 установлен, в процессе загрузки у Вас запросят поместить новую гибкую дискету в привод. Это необходимо для двух-дискового загрузочного набора.

Есть два случая, в зависимости от того, создается ли Вы одиночная загрузочая дискета или набор из двух дискет "загрузочная + корневая ".

1. Если Вы создаете один диск, сжатая корневая файловая система должна быть помещена сразу после ядра, так что смещением будет первый свободный блок (который должен быть такой-же как KERNEL_BLOCKS). Бит 14 должен быть 1, и бит 15 должен быть 0.

2. Если Вы формируете двух-дисковый набор, корневая файловая система начинается во втором диске, так что смещение будет нулевое. Бит 14 должен быть 1, и бит 15 должен быть 1.

После тщательно вычисления значения ramdisk слова, установите его rdev -r. Величина. Если Вы использовали LILO, аргументом rdev должен быть - смонтированый путь ядра, например /mnt/vmlinuz; если Вы скопировали ядро с dd, взамен используйте имя флоппи-устройства (например, /dev/fd0).

 
   rdev -r KERNEL_OR_FLOPPY_DRIVE  VALUE
Если Вы использовали LILO, размонтируйте дискету сейчас.

6.4. Перенос корневой файловой системы.

Последний шаг - перенос корневой файловой системы.

  • ·если корневая файловая система будет помещена в диск с ядром, перенесите ее, используя dd с опцией seek, которая определяет сколько перескочить блоков:
      dd if=rootfs.gz of=/dev/fd0 bs=1k seek=KERNEL_BLOCKS 
    
  • если корневая файловая система будет помещена на второй диск, удалите первую дискету, вставьте вторую, затем перенесите корневую файловую систему:
       dd if=rootfs.gz of=/dev/fd0 bs=1k
    
    Поздравляю, Вы сделали это!

    ===== Вы должны всегда проверять загрузочный диск перед откладыванием его в сторону до критической ситуации! =====


  • [ Назад | Оглавление | Далее ]









    helloworld.ru © 2001-2021
    Все права защищены