Перейти на главную   
  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

4. Создание корневой файловой системы.

Создание корневой файловой системы включает выбор файлов, необходимых для запуска системы. В этой секции мы описываем, как создать сжатую корневую файловую систему. Менее распространенный вариант - создать несжатую файловую систему на дискете, которая непосредственно монтируется как корневая; этот вариант описан в секции `` Не - ramdisk Корневая Файловая система ".

4.1. Обзор.

Корневая файловая система должна содержать все необходимое для поддержки полной Linux системы. Для этого диск должен включить минимальные требования для Linux системы:

  • базовая файловая система,

  • Минимальный набор каталогов: /dev, /proc, /bin, /etc, /lib, /usr, /tmp,

  • Базовый набор утилит: sh, ls, cp, mv, и т.д.,

  • Минимальный набор файлов конфигурации: rc, inittab, fstab, и т.д.,

  • Устройства: /dev/hd *, /dev/tty *, /dev/fd0, и т.д.,

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

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

  • Проверить файловую систему другого устройства, например проверить корневую файловую систему на жестком диске, у Вас должна быть возможность загрузить Linux с другого устройства- корневой дискеты. Затем Вы можете выполнить fsck на вашем основном корневом диске, в то время как он - не замонтирован.

  • Восстанавливать все или часть вашего основного корневого устройства из архива используя утилиты резервирования типа cpio, tar, gzip и ftape.

    Мы опишем, как создать сжатую файловую систему, называемую так, потому она что сжата на диске и, когда загружается, распаковывается на ramdisk. Со сжатой файловой системой Вы можете разместить много файлов (приблизительно два мегабайта) на стандартную дискету 1440КБ. Так как файловая система намного больше чем дискета, она не может поместиться на дискете. Мы должны создать ее в другом месте, сжать и затем скопировать на дискету.

    4.2. Создание файловой системы.

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

  • Использовать ramdisk (DEVICE = /dev/ram0). В этом случае используется память , чтобы имитировать дисковод. Ramdisk должен быть достаточно большой, чтобы содержать файловую систему соответствующего размера. Если Вы используете LILO, проверьте в вашем файле конфигурации (/etc/lilo.conf) строчку:
    RAMDISK_SIZE = nnn
    Которая определяет, сколько оперативной памяти будет выделено. Значение по умолчанию 4096КБ, которое должно быть достаточным. Вы не должны пытаться пробовать использовать такой ramdisk на машине с объемом памяти менее 8МБ.

    Удостовертесь что существует устройство /dev/ram0, /dev/ram или /dev/ramdisk. Если необходимо, создайте /dev/ram0 с mknod (major номер 1, minor 0).

  • Если у Вас есть достаточно большой (несколько мегабайт) неиспользуемый раздел жесткого диска, это - хорошее решение. Если у Вас достаточно физической оперативной памяти, Вы можете выключить подкачку(swap) и сформировать файловую систему в вашем разделе подкачки.

  • Использовать петлевое (loopback) устройство, которое позволяет работать с файлом на диске как с устройством. При использовании петлевого устройства Вы можете создать трех мегабайтный файл на вашем жестком диске и сформировать на нем файловую систему.

    Чтобы использовать петлевые устройства, Вам нужны специально модифицированные mount и unmount программы. Вы можете найти их в каталоге:

    <ftp://ftp.win.tue.nl:/pub/linux/util/mount/>

    Если на вашей системе нет loop устройства (/dev/loop0, /dev/loop1, и т.д.) , Вы должны создать их - ``mknod /dev/loop0 b 7 0''. Как только вы установили специальные mount и umount, создаете временный файл на жестком диске с достаточной емкостью (eg, /tmp/fsfile). Вы можете использовать команду

    dd if=/dev/zero of=/tmp/fsfile bs=1k count=nnn
    
    для создантя nnn-блокового файла.

    Используйте имя файла вместо DEVICE ниже. Когда Вы даете команду монтирования, Вы должны включить опцию ``-o loop" чтобы mount использовала петлевое устройство.

    mount -o loop -t ext2 /tmp/fsfile /mnt
    
    монтирует /tmp/fsfile (через петлевое устройство) в точке монтирования /mnt. Команда df должна подтвердить это.

    После того, как вы выбрали одну из этих опций, подготовьте DEVICE:

     
    dd if=/dev/zero of=DEVICE bs=1k count=3000
    
    Эта команда обнуляет устройство. Этот шаг важен, т.к. файловая система на устройстве будет сжата, для достижения максимальной степени сжатия все неиспользуемые части должны быть заполнены нулями.

    Затем, создайте файловую систему. Linux ядро распознает два типа файловой системы для корневых дисков, которые автоматически сопируются на ramdisk. Это - minix и ext2, из которых ext2 является привилегированной файловой системой. При использовании ext2, Вы можете использовать -i опцию, чтобы определить большее количество inodes чем значение по умолчанию; -i 2000 предложен так, чтобы Вы не исчерпали inodes. В качестве альтернативы, Вы можете сберечь inodes, удаляя большинство ненужных /dev файлов. mke2fs по умолчанию создаст 360 inodes на дискете 1. 44МБ. Я считаю, что 120 inodes вполне достаточно для моей текущей спасательной корневой дискеты, но если Вы включаете все устройства в /dev каталог, Вы легко превысите 360. Использование сжатой корневой файловой системы позволяет иметь большую файловую систему, и следовательно большее количество inodes по умолчанию, но Вы должны либо уменьшить число файлов,либо увеличивать число inodes.

    Так что Ваша команда выглядит так:

    mke2fs -m 0 -i 2000 DEVICE
    
    ( Если вы используете петлевое устройство, вместо DEVICE должно быть подставлено имя используемого дискового файла. mke2fs спросит, действительно ли Вы хотите сделать это; говорите да.)

    mke2fs команда автоматически обнаружит доступное пространство и соответственно сконфигурируется . -m 0 параметр предотвращает от резервирования пространства для корня, и следовательно, обеспечивает больше используемого пространства на диске.

    Затем, смонтируйте устройство:

    mount -t ext2 DEVICE /mnt
    
    ( Вы должны создать каталог монтирования /mnt, если он не существует.) В следующих секциях, все имена каталогов назначения полагаются соответственно /mnt.

    4.3. Заполнение файловой системы.

    Существует разумный минимальный набор каталогов для вашей корневой файловой системы:

  • /dev --- Устройства, требуемые для ввода/вывода

  • /proc --- каталог-заглушка, необходимый для proc файловой системой

  • /etc --- системные файлы конфигурации

  • /sbin --- критичные системные binaries

  • /bin --- базовые binaries часть предполагаемой системы

  • /lib --- общие библиотеки, для обеспечения средств динамической поддержки (run-time)

  • /mnt --- точка монтирования для поддержки других дисков

  • /usr --- дополнительные утилиты и приложения

    ( Представленная здесь структура каталогов - только для использования в корневой дискете. Реальные Linux системы имеют большее полный и четкий набор правил, называемый Стандарт Файловой Системы (File System Standard), для определения размещения файлов.)

    Три из этих каталогов должны быть пусты на корневой файловой системе, т.о. что они должны быть только созданы mkdir. Каталог /proc - в основном заглушка, в который помещена proc файловая система. Каталоги /mnt и /usr - только точки монтирования для использования после того, как загрузочная/корневая система будет запущена. Следовательно, эти каталоги должны быть только созданы.

    Оставшиеся четыре каталога описаны в следующих секциях.

    4.3.1. /dev

    /dev каталог содержит специальные файлы для всех устройств, которые обязательно используются в любой Linux системе. Сам каталог - обычный каталог, и может быть создан mkdir обычным способом. Однако специальные файлы устройств, должны быть созданы специальным способом, используя команду mknod.

    Есть более короткий путь - копировать содержимое вашего существующего каталога /dev , и удалить те устройства, которые Вам не нужны. Единственое требование - чтобы Вы, копируя специальные файлы устройств, использовали -R опцию. Это приведет к копированию каталога без попытки копировать содержимое файлов. Убедитесь, что Вы использовали верхний регистр R. Если Вы укажете опцию со строчной буквы -r, Вы вероятно скопируете все содержимое всех ваших жестких дисков - или по крайней мере столько, сколько поместится на дискете! Следовательно, соблюдайте осторожность, и используйте команду:

    cp -dpR /dev /mnt
    
    предполагается, что дискета смонтирована в /mnt. Опции dp гарантируют, что символические ссылки буду копироваться как ссылки, а не как содержимое файла, и что первоначальные атрибуты файла сохранятся, таким образом сохранится информация о владельце файла.

    В качестве альтернативы, Вы можете использовать программу cpio с -p опцией, потому что cpio обрабатывает специальные файлы устройств правильно, и не будет пытаться копировать содержимое. Например, команды:

     cd /dev
     find . -print | cpio -pmd /mnt/dev 
    
    будут копировать все специальные файлы устройств из /dev в /mnt/dev. Фактически копируются все файлы в дереве каталога /dev, и создются требуемые подкаталоги в дереве результирующего каталога.

    Если Вы хотите сделать это трудным способом, используйте ls -l, чтобы отобразить главные(major) и малые (minor) числа устройств для нужных вам устройств, и создайте их на дискете, используя mknod.

    Как только устройства скопированы, стоит проверить, что все требуемые специальные устройства помещены на спасательную дискету. Например, ftape используется для ленточных устройств, так что Вам надо скопировать все их, если Вы предполагаете обращаться к вашим ленточным устройствам из загрузочной дискеты.

    Обратите внимание, что для каждого файла устройства требуется один inode, и inodes может быть дефицитым ресурсом, особенно на файловой системе дискеты. Следовательно имеет смысл удалить любые файлы устройств в /dev каталоге дискеты, которые Вам не нужны. Много устройств очевидно не нужно на специфических системах. Например, если у Вас нет SCSI дисков, Вы можете свободно удалить все файлы устройств начинающиеся с sd. Точно так же, если Вы не предполагаете использовать последовательный порт, все файлы устройств начинающиеся с cua можно удалить.

    Убедитесь, что включили следующие файлы в этот каталог: console, kmem, mem, null,ram, tty1.

    4.3.2. /etc

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

    1.Требуемые всегда, например rc, fstab, passwd.

    2. Которые могут потребоваться, но не обязательно.

    3. Всякий хлам.

    Файлы, которые не необходимы, могут быть идентифицированы с командой:

     
     ls -ltru 
    
    она выводит файлы в обратном порядке по дате последнего обращения, так если к каким-либо файлам не обращались, их можно не включать в корневую дискету.

    На моих корневых дискетах число конфигурационных файлов до 15. Это уменьшает мою работу разделив на три набора файлов:

    1. Те, которые я должен конфигурировать для загрузочной системы

    a. rc.d/* - скрипты запуска системы и изменения уровня выполнения

    b. fstab --- список монтируемых файловых систем

    c. inittab --- параметры для процесса init - первого процесса запускаемого во время начальной загрузки.

    2. Те, которые я должен привести в порядок для загрузочной системы

    a. Passwd --- список пользователей, домашних каталогов, и т.д.

    b. group - группы пользователей.

    c. shadow --- пароли пользователей. У Вас может его не быть.

    Если безопасность важна, passwd, и shadow должны быть сокращены, чтобы избежать копирования паролей пользователей вне системы, и так, чтобы, когда Вы загрузились с дискеты, нежелательные входы в систему отвергались. Однако, имеется причина не сокращать passwd и group. tar (и вероятно другие архиваторы) сохраняет имя и группу пользователя с файлами. Если Вы восстанавливаете файлы на ваш жесткий диск с ленты, файлы будут восстановлены с первоначальными именами их владельцев. Если эти имена не существуют в passwd/group, при восстановлении, UIDs/GIDs не будут правильны.

    Убедитесь, что passwd содержит по крайней мере root. Если Вы допускаете других пользователей ко входу в систему, убедитесь, их домашние каталоги и оболочки(shells) существуют.

    3. Остальные. Они работают в данный момент, так что я оставляю их.

    Помимо этого, я действительно должен конфигурировать только два файла, и то, что они должны содержать, удивительно мало.

  • rc должен содержать:
      #!/bin/sh
      /bin/mount -av
      /bin/hostname Kangaroo
    
    Убедитесь, что каталоги правильны. В действительности Вы не должны выполнять hostname - это только выглядит лучше, если Вы это сделаете.

  • fstab должен содержать по крайней мере:
      /dev/ram0   /          ext2    defaults
      /dev/fd0    /          ext2    defaults
      /proc       /proc      proc    defaults
    
    Вы можете копировать записи из вашего существующего fstab, но Вы должны не автоматически монтировать все ваши разделы жесткого диска; используйте noauto ключевое слово с ними. Ваш жесткий диск может быть поврежден или мертв, когда используется загрузочная дискета .

    Ваш inittab должен быть изменен так, чтобы sysinit строка выполнила rc, или любой базовый сценарий начальной загрузки, который будет использоваться. Также, если Вы хотите гарантировать, что пользователи на последовательных портах не могут входить в систему, закомментируйте все записи для getty, которые включают устройства ttys или ttyS в конце строки. Оставьте tty порты так, чтобы Вы могли входить в систему с консоли.

    Минимальный inittab файл выглядит так:

      id:2:initdefault:
      si::sysinit:/etc/rc
      1:2345:respawn:/sbin/getty 9600 tty1
      2:23:respawn:/sbin/getty 9600 tty2
    
    Inittab файл определяет то, что система будет запускаться в различных режимах включая запуск, переход в многопользовательский режим, и т.д. Главное быть внимательным здесь, и тщательно проверить, что команды, указанные в inittab обращаются к программам, которые существуют и в правильном каталоге. Если Вы поместите ваши командные файлы в ваш спасательный диск, используя секцию "Пример каталога корневого диска" как инструкцию, и затем скопируете ваш inittab в ваш загрузочный диск без проверки, вероятность отказа будет очень высока, потому что половина inittab записей обратится к отсутствующим программам или к неправильным каталогам.

    Обратите внимание, что некоторые программы не могут быть размещены в другом месте, потому что другие программы жестко связаны с их расположением. Например на моей системе, /etc/shutdown имеет жестко связан с /etc/reboot. Если я перемещаю reboot в /bin/reboot, и затем выдаю команду shutdown, она не выполнится, потому что не сможет найти файл перезагрузки.

    Для остальных, просто скопируйте все текстовые файлы в вашем /etc каталоге, плюс все исполняемые программы в вашем /etc каталоге, в которых Вы не уверены, что они Вам не понадобятся. Как инструкцией, руководствуйтесь примером, в секции "Пример каталога корневого диска". Вероятно достаточно скопировать только те файлы, но системы значительно отличаются, так что Вы не можете быть уверены, что тот же самый набор файлов на вашей системе эквивалентен файлам в списке. Единственый верный метод - начать с inittab и выбрать то, что требуется.

    Большинство систем теперь использует /etc/rc.d/ каталог, содержащий сценарии оболочки для различных уровней выполнения. Минимум - одиночный rc скрипт, но может быть проще скопировать inittab и /etc/rc.d каталог из вашей существующей системы, и сокращать сценарии оболочки в rc.d каталоге, чтобы удалить обработку не относящуюся к окружению системной дискеты.

    4.3.3. /bin и /sbin

    Каталог /bin - удобное место для дополнительных утилит, которые должны выполнять базовые операции, утилиты типа ls, mv, cat и dd. См. приложение "Пример каталога корневого диска" для примерного списка файлов, которые входят в /bin и /sbin каталоги. Он не включает никакие утилиты восстановления из резервных копий, типа cpio, tar и gzip.Это потому, что я помещаю их на отдельную сервисную дискету, сохраняя пространство для загрузочной дискеты. Как только загрузочная дискета загружается, она копируется на ramdisk, оставляя дисковод свободным для монтирования другой дискеты - сервисной дискеты. Я обычно монтирую его как /usr.

    Создание сервисной дискеты описано ниже в секции "Создание сервисного диска". Вероятно желательно хранить копию той же самой версии утилит резервирования, используемых для записи резерва, так чтобы Вы не тратить впустую время, пробуя установить версии, которые не смогут прочитать ваши ленты резервирования.

    Удостоверитесь, что Вы включили следующие программы: init, getty или эквивалент, login, mount, некоторые оболочки , способные выполнять ваши rc скрипты, ссылка от sh к оболочке.

    4.3.4. /lib

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

    Почти каждая программа требует по крайней мере libc библиотеки, libc.so.N, где N - текущий номер версии. Проверьте ваш /lib каталог. libc.so.5 - обычно symlink к имени файла с полным номером версии:

     % ls -l /lib/libc.so*
     lrwxrwxrwx 1 root root     14 Nov  1 20:34 /lib/libc.so.5 -> libc.so.5.4.33*
     -rwxr-xr-x 1 root root 573176 Jun 12 02:05 /lib/libc.so.5.4.33*
    
    В этом случае Вам надо libc.so.5.4.33. Чтобы найти другие библиотеки, Вы должны пройти все binaries, которые Вы планируете включить и проверить их зависимости ldd командой. Например:
     
     % ldd /sbin/mke2fs
        libext2fs.so.2 => /lib/libext2fs.so.2
        libcom_err.so.2 => /lib/libcom_err.so.2
        libuuid.so.1 => /lib/libuuid.so.1
        libc.so.5 => /lib/libc.so.5
    
    Каждый файл справа - нужен. Имейте в виду, что перечисленные библиотеки могут быть символическими ссылками.

    В /lib Вы должны также включить ld.so загрузчик для a.out библиотек или ld-linux.so (для библиотек ELF). Если не уверены, какой Вам нужен, выполните команду file на библиотеке. Например:

     
     % file /lib/libc.so.5.4.33 /lib/libc.so.4.7.2
     /lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped
     /lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 386, version 1, stripped
    
    QMAGIC указывает, что 4.7.2 - для a.out библиотек, и ELF указывает, что 5.4.33 - для ELF.

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

    4.4 Обеспечение для PAM и NSS.

    Ваша система может требовать некоторе динамически загружаемые библиотеки, которые не видны ldd.

    4.4.1 PAM (Pluggable Authentication Modules).

    Если ваша система использует PAM (Pluggable Authentication Modules) Вы должны принять некоторые меры, иначе Вы будуте не способны войти в систему. PAM - изощренный модульный метод, для опознавания пользователей и их доступа к службам. Простой путь проверки использования вашей системой PAM состоит в проверке каталога /etc на вашем диске на наличие файла pam.conf или каталога pam.d; если они существуют - вы должны обеспечить минимальную поддержку PAM.(В качесте альтернативы запустите ldd для вашего исполняемого файла login; если выдаваемая информация включает libpam.so вам нужен PAM).

    В лучшем случае, безопасность не имеет не имеет значения для загрузочных дисков, т.к. если кто-то имеет физический доступ к машине он может сделать все, что захочет.Следовательно, по существу вы можете запретить PAM создавая в вашей корневой файловой системе простой /etc/pam.conf:


    OTHER auth optional /lib/security/pam_permit.so OTHER account optional /lib/security/pam_permit.so OTHER password optional /lib/security/pam_permit.so OTHER session optional /lib/security/pam_permit.so
    Также скопируйте файл /lib/security/pam_permit.soв вашу корневую файловую систему.Эта библиотека приблизительно 8Кб, т.о. она налагает минимальные расходы.

    Заметьте, что эта конфигурация разрешает любому полный доступ к файлам и службам на вашей машине. Если по некоторым причинам Вы заботитесь о безопасности вашего загрузочного диска, Вы должны скопировать некоторые или все установки PAM на вашу корневую файловую систему. Прочтите внимательно документацию на PAM и скопируйте необходимые библиотеки в /lib/security вышей корневой файловой системы.

    Вы также должны включить /lib/libpam.so на ваш загрузочный диск, но Вы уже об этом знаете, т.к. запускали ldd для /bin/login, который показал эту зависимость.

    4.4.2 NSS (Name Service Switch).

    Если Вы используете glibc (или libc6) Вы должны обеспечить name services или вы не сможете войти в систему.Файл /etc/nsswitch.conf управляет поиском баз данных для различных сервисов. Если вы не планируете доступ к сетевым службам (таким как DNS, NIS поиск). Вы должны подготовить простой nsswitch.conf файл который выглядит так:


    passwd: files shadow: files group: files hosts: files services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files automount: files aliases: files netgroup: files publickey: files
    Это указывает, что каждая служба будет иметь доступ только к локальным файлам. Вы также должны включить /lib/libnss_files.so.1, которая загружается динамически для работы с обзором файлов.

    Если вы планируете доступ к сети с вашего загрузочного диска, вы должны создать более замысловатый файл nsswitch.conf. Для подробностей смотрите man страницу nsswitch. Запомните, что вы должны включать файл /lib/libnss_files.so.1 для каждой указанной службы.

    4.5. Модули.

    Если у Вас модульное ядро, Вы должны обдумать, какие модули Вы хотите загружать с вашего загрузочного диска после загрузки. Возможно Вы захотите включить ftape и zftape модули, если у вас есть устройства резервирования на гибкой ленте, модули для SCSI устройств, если они у Вас есть, и, возможно, модули PPP или SLIP, если Вы хотите иметь доступ к сети при аварии.

    Эти модули могут быть помещены в /lib/modules. Вы должны также включить insmod, rmmod и lsmod. В зависимости от того, хотите ли Вы загружать модули автоматически, Вы можете также включать modprobe, depmod и swapout. Если Вы используете kerneld, включаете его наряду с /etc/conf.modules.

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

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

    4.6. Некоторые заключительные подробности.

    Некоторые системные программы, типа login, жалуются, если файл /var/run/utmp и каталог /var/log не существует. < PRE> mkdir -p /mnt/var/{log,run} touch /mnt/var/run/utmp В заключение, после того, как Вы установили все библиотеки, Вам необходимо, выполнить ldconfig, чтобы пересоздать /etc/ld.so.cache на корневой файловой системе. Кэш сообщает загрузчику, где найти библиотеки. Чтобы пересоздать ld.so.cache, выдайте следующие команды:
         chdir /mnt; chroot /mnt /sbin/ldconfig
    
    chroot необходим, потому что ldconfig всегда пересоздает кэш для корневой файловой системы.

    4.7. Перенос.

    Как только Вы закончили создание корневой файловой системы, размонтируйте ее, скопируйте ее в файл, и сожмите:
        umount /mnt
        dd if=DEVICE bs=1k | gzip -v9 > rootfs.gz
    
    Это может занять несколько минут. После окончания у Вас будет файл rootfs.gz , который и есть ваша сжатая корневая файловая система. Вы должны проверить размер, чтобы удостовериться, что она поместиться на дискете; если не помещается вы должны вернуться и удалить некоторые файлы. Некоторые подсказки содержатся в секции "Уменьшение размера корневой файловой системы ".

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









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