Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Мета роботи. Ознайомитися з методами створення завантажувального пристрою





Ознайомитися з методами створення завантажувального пристрою. Навчитися створювати завантажувальний пристрій.

3.2 Теоретичні відомості

Що таке завантажувальна флешка, для чого вона потрібна і які її можливості? Незабаром CD і DVD накопичувачі втратять свою популярність унаслідок громіздкості і порівняно невеликої ємності. Їм на зміну приходять компактні флеш-карти або USB-накопичувачі, об'ємом від 2 Гб і більше.

USB-флеш-накопичувач (сленг. флешка, флешка, флеш-драйв) — запам'ятовуючий пристрій, що використовує як носій флеш-пам'ять і підключається до комп'ютера або іншого пристрою, що зчитує по інтерфейсу USB.

Основне призначення USB-накопичувачів — зберігання, перенесення і обмін даними, резервне копіювання, завантаження операційних систем (LiveUSB) та ін.

За допомогою завантажувальної флешки можна форматувати й відновлювати жорсткі диски комп'ютера, тестувати оперативну пам'ять, підключатися до інтернету або локальній мережі, в залежності від програм, які встановлені на флеш-карті.

Флеш пам'ять була винайдена Фудзі Масуока (Fujio Masuoka), коли він працював у Toshiba в 1984 році. Ім'я «флеш» було придумано також у Toshiba колегою Фудзі, Седзі Аріізумі (Shoji Ariizumi), тому що процес стирання вмісту пам'яті йому нагадав фотоспалах (англ. flash). Масуока представив свою розробку на IEEE 1984 International Electron Devices Meeting (IEDM), що проходила в Сан-Франциско, Каліфорнія. Intel побачила великий потенціал у винаході і в 1988 році випустила перший комерційний флеш-чіп NOR-типу.

NAND-тип флеш-пам'яті був анонсований Toshiba в 1989 році на International Solid-State Circuits Conference. У нього була більше швидкість запису і менше площа чипа.

Переваги:

— мала вага, безшумність роботи і портативність;

— універсальність: сучасні комп'ютери, телевізори та DVD-програвачі мають USB-роз'єми;

— низьке енергоспоживання (так як не є механізмом на відміну від CD, DVD і жорстких дисків);

— працездатність в широкому діапазоні температур;

— більш стійкі до механічних впливів (вібрації і ударів) в порівнянні з жорсткими дисками;

— не схильні до дії подряпин і пилу, які були проблемою для оптичних носіїв і дискет;

— здатні зберігати дані повністю автономно до 5 років. Найбільш перспективні зразки - до 10 років.

Недоліки:

— обмежене число циклів запису-стирання перед виходом з ладу. Чіпи пам'яті, зроблені за технологією MLC (більшість) найчастіше витримують не більше 5000 циклів перезапису. Крім цього обмежений ресурс USB-коннектора - близько 1500 підключень;

— швидкість запису і читання обмежені пропускною спроможністю USB;

— на відміну від компакт-дисків, мають недоліки, властиві будь електроніці;

— чутливі до електростатичного розряду — звичайне явище в побуті, особливо взимку;

— чутливі до радіації.

Завантажувальний USB-носій часто використовують для установки самих різних операційних систем, сама по собі флеш-карта завантажувальних секторів не має, необхідна установка спеціальної програми.

Розглянемо простий приклад створення завантажувальної флешки і її використання для установки операційної системи лінукс. Вам будуть потрібні — звичайна порожня флешка, об'ємом 1 Гб.

3.3 Хід роботи

1) Скачуємо початковий код ядра лінукс http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2

Також нам потрібні початковий код GRUB (ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz) і BusyBox (http://www.busybox.net/downloads/busybox-1.18.3.tar.bz2)

2) У своєму домашньому каталозі створюємо робочий каталог, розпаковуємо початковий код в окремі каталоги в робочому каталозі розпакування архівів.

3) Збираємо ядро з початкового коду.

В консолі переходимо в каталог, куди ми розпакували початковий код ядра Лінукса, викачуємо сюди. config файл, який можна скачати (http://upload.com.ua/get/902372703/.config) (Перед складанням перевірте ім'я файлу конфігурації він повинен називатися «.config» саме з крапкою на початку!)

(Ті хто хочуть самостійно конфігурувати ядро, можуть набрати $ make nconfig) і набираємо

$ Make

Якщо при конфігуруванні нічого не було змінено то, зібране ядро (файл bzImage) знаходиться в <початковий код ядра> / arch/x86/boot /

4) Збираємо BusyBox. В консолі переходимо в каталог, куди ми розпакували початковий код BusyBox.

Можливо в систему потрібно встановити libcurses для правильної роботи menuconfig! Встановити можна за допомогою менеджера пакетів вашої системи. (Якщо menuconfig для BusyBox не викликається і Ви не знаєте як встановити libcurses то можна скачати конфігураційний файл тут http://upload.com.ua/get/902458997/config і покласти його в каталог BusyBox, не забудьте перейменувати його в «. Config», після цього $ make menuconfig робити НЕ ПОТРІБНО!).

5) Конфігуруємо збірку:

$ Make menuconfig

Відзначаємо пункт:

Busybox Settings ---> Build Options ---> [*] Build BusyBox as a static binary (no shared libs)

Повертаємося назад в перше меню конфігуратора, зберігаємо конфігурацію.

Save Configuration to an Alternate File

Після того як ми маємо файл конфігурації в каталозі Busybox, можна його зібрати, для цього набираємо:

$ Make

Зібраний бінарний файл називається busybox і знаходиться в каталозі з його початковим кодом.

6) Збираємо Grub.

Для складання необхідно щоб в системі були встановлені:

GNU Bison 2.3 or later

GNU gettext 0.17 or later

GNU binutils 2.9.1.0.23 or later

В консолі переходимо в каталог, куди ми розпакували початковий код Grub. Конфігуруємо збірку, і збираємо.

$ Cd <шлях до каталогу з розпакованим початковим кодом Grub>

$. / Configure

$ Make

Якщо. / Configure лається на binutils (GRUB requires a working absolute objcopy;) то необхідно модифікувати. / configure

echo $ ECHO_N "checking whether $ {OBJCOPY} works for absolute addresses...

....

.... for link_addr in 0x2000 0x8000 0x7C00; do

....

.... if {ac_try = '$ {OBJCOPY-objcopy} - only-section =. text-O binary conftest.exec conftest'....

Якщо компіляція завершується з помилкою «kern / device.c: 80: error: generating trampoline in object (requires executable stack)» треба виправити Makefile:

— виконуємо Sudo chmod a + w. / Makefile;

— відкриваємо Makefile будь-яким текстовим редактором, видаляємо параметр «-Werror» (в кінці найдовшої строчки);

— зберігаємо зміни, запускаємо збірку заново ($ make).

 

Із збіркою Grub як виявилося виникло безліч проблем, звичайно краще все-таки зібрати вручну, але якщо зовсім ніяк, то вже зібрану нову версію для

архітектури х86, скачати можна звідси: http://upload.com.ua/get/902459022/grub -0.97.zip

(архів необхідно тільки розпакувати, $. / configure і $ make виконувати не потрібно. Розпакувати в окремий каталог і далі по тексту замість шляху до каталогу з початковими файлами Grub підставляти шлях до каталогу з розпакованим Grub або просто розпакувати у каталог з початковим кодом.

7) Приступаємо до форматування флешки.

Визначаємо файл пристрою флешки. (У мене це / dev / sdb) і в подальших командах підставляємо шлях до своєї флешки.

Увага! Якщо не правильно вказати пристрій, то у Вас є чудова можливість вбити розділи на жорсткому диску і втратити всю інформацію.

Upd: визначити файл пристрою флешки можна так: виймаємо всі флешки і інші переносні пристрої зберігання інформації і до кінця лабораторної роботи ніяких нових пристроїв окрім флешки, яку відформовуємо, краще не підключати, дивимося які файли жорстких дисків є в системі:

$ Ls / dev | grep sd

$ Ls / dev | grep hd

Підключаємо флешку, і дивимося знову, має з'явитися ще один пристрій у мене це sdb. Хто не знає пристрої відрізняються останньою буквою, цифри біля це логічні диски цього пристрою, тобто sdb1 це перший логічний диск на моїй флешці, sdb2 - другий і т.д.

parted / dev / sdb

Створюємо на флешці нову таблицю розділів:

(Parted) mklabel

New disk label type? msdos

Warning: The existing disk label on / dev / sdb will be destroyed and all data on this disk will be lost. Do you want to continue?

Yes / No? y

Створюємо на флешці 1-й розділ:

(Parted) mkpart

Partition type? primary / extended? p

File system type? [Ext2]? ext2

Start? 512B

End? 256MB

Warning: The resulting partition is not properly aligned for best performance.

Ignore / Cancel? i

(Parted) p

Model: Flash Drive UT_USB20 (scsi)

Disk / dev / sdb: 2022MB

Sector size (logical / physical): 512B/512B

Partition Table: msdos

Number Start End Size Type File system Flags

1 512B 256MB 256MB primary

Покидаємо parted:

(Parted) quit

Створюємо на флешці 2-й розділ:

$ Sudo fdisk / dev / sdb

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4, default 2): 2

First sector (500001-3948542, default 500001):

Using default value 500001

Last sector, + sectors or + size {K, M, G} (500001-3948542, default 3948542):

Using default value 3948542

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes): c

Changed system type of partition 2 to c (W95 FAT32 (LBA))

Command (m for help): a

Partition number (1-4): 1

Command (m for help): p

Disk / dev / sdb: 2021 MB, 2021654016 bytes

63 heads, 62 sectors / track, 1010 cylinders, total 3948543 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical / physical): 512 bytes / 512 bytes

I / O size (minimum / optimal): 512 bytes / 512 bytes

Disk identifier: 0x000082f5

Device Boot Start End Blocks Id System

/ Dev/sdb1 * 1 500000 250000 83 Linux

/ Dev/sdb2 500001 3948542 1724271 c W95 FAT32 (LBA)

Command (m for help): w

The partition table has been altered!

Calling ioctl () to re-read partition table.

WARNING: If you have created or modified any DOS 6.x

partitions, please see the fdisk manual page for additional

information.

Syncing disks.

8) Створюємо на розділах флешки файлові системи:

mkfs.ext3 / dev/sdb1

mkdosfs-F 32 / dev/sdb2

9) У робочому каталозі створюємо каталог для монтування флешки.

$ Cd <шлях до робочого каталогу>

$ Mkdir mnt

10) Монтуємо перший розділ флешки:

$ Sudo mount / dev/sdb1. / Mnt /

11) Для автоматичного підхоплення завантажувачем розділу створеної флешки додаємо мітку розділу

$ Sudo e2label / dev/sdb1 RESCUE

12) Переходимо на змонтований розділ і створюємо в ньому каталоги / boot / grub /

 

$ Cd. / Mnt /

$ Sudo mkdir boot

$ Cd boot

$ Sudo mkdir grub

$ Cd. / Grub

13) Встановлюємо Grub на флешку.

Копіюємо файли завантажувача, в каталог grub:

$ Sudo cp <шлях до каталогу з розпакованим початковим кодом Grub> / stage1/stage1. /

$ Sudo cp <шлях до каталогу з розпакованим початковим кодом Grub> / stage2/stage2. /

Установку завантажувача і створення файлів проводимо від імені супер користувача (команда $ su). Для того щоб вийти з режиму супер користувача використовується Команда # exit.

(Зверніть увагу запрошення командного рядка в режимі супер користувача змінилося з $ на # далі для стислості всі команди для виконання яких недостатньо можливостей; sudo будуть починатися з символу #).

Зверніть увагу ЦС автоматично замінює символ подвійні лапки (виглядають як два ') на символи «і». Перевіряйте консольні команди після копіювання!

echo-e "default \ n # \ n # \ n # \ n # \ n # \ n # \ n # \ n # \ n # \ n # \ n # WARNING: If you want to edit this file directly, do not remove any line \ n # from this file, including this warning. Using \ `grub-set-default \ 'is \ n # strongly recommended.»>. / Default

echo-e "(hd0) \ tLABEL = RESCUE»>. / device.map

echo-e "default 0 \ ntimeout 2 \ ntitle Linux Rescue \ nroot (hd0, 0) \ nkernel / boot / bzImage root = LABEL = RESCUE init = \" / bin / busybox sh \ "\ ninitrd (hd0, 0) / boot / rescue_initramfs.cpio.gz»>. / menu.lst

В консолі переходимо в каталог, куди ми розпакували початковий код Grub.

cd <шлях до каталогу з розпакованим початковим кодом Grub> / grub / grubGNU GRUB version 0.97 (640K lower / 3072K upper memory) [Minimal BASH-like line editing is supported. For the first word, TABlists possible command completions. Anywhere else TAB lists the possiblecompletions of a device / filename. ] Grub> device (hd0) / dev / sdb grub> root (hd0, 0) Filesystem type is ext2fs, partition type 0x83grub> setup (hd0) Checking if «/ boot/grub/stage1» exists... yesChecking if «/ boot / grub/stage2»exists... yesChecking if«/ boot/grub/e2fs_stage1_5»exists... noRunning«install / boot/grub/stage1 (hd0) / boot/grub/stage2 p / boot / grub / menu.lst «... succeededDone.grub > quit.

14) Копіюємо на флешку ядро ​​Лінукса.

$ Cd <шлях до робочого каталогу> / mnt / boot /

$ Sudo cp <початковий код ядра> / arch/x86/boot/bzImage. /

15) Створюємо образ Initramfs

$ Cd <шлях до робочого каталогу> /

$ Sudo mkdir initramfs

$ Cd initramfs

$ Mkdir. / Bin

$ Sudo cp <шлях до каталогу з розпакованим початковим кодом Busybox> / busybox. / Bin /

Якщо крім Busybox Вам потрібні інші утиліти, то також копіюємо їх сюди, не забуваючи про їх динамічні бібліотеки, які копіюємо в підкаталоги як зазначено утилітою ldd, тільки замість кореня «/» використовуємо «. /»

Створюємо файл ініціалізації, щоб оболонка сама запускалася, та кілька потрібних файлових систем монтувалися.

Щоб була можливість працювати з пристроями потрібно скопіювати, файли потрібних пристроїв з каталогу / dev / з працюючої ОС, в однойменний каталог в корені образу Initramfs. Від цього може постраждати універсальність, працювати буде і без цього але файли пристроїв потрібно створювати вручну.

echo-e '#! / bin / busybox sh \ nmount-t proc none / proc \ nmount-t sysfs none / sys \ n / bin / busybox sh'> init $ sudo chmod + x. / init

find. -Print0 | cpio - null-ov - format = newc | gzip -9> <шлях до робочого каталогу> / mnt / boot / rescue_initramfs.cpio.gz

16) Тепер у нас є завантажувальна флешка з лінуксом. Акуратно размонтуємо і можна користуватися.

3.4 Вміст звіту

Звіт повинен містити короткий опис використовуваних в роботі утиліт, а також детальний опис дій з виконання роботи (команди і результат їх виконання). Корисні посилання для даної лабораторної роботи знаходяться у джерелах [6-10].

3.5 Контрольні запитання

1. Що таке флеш накопичувач? Навіщо він потрібний?

2. Навіщо потрібний BusyBox?

3. Як монтувати флеш носій?

4. Як створити новій розділ на флешці?

5. Що необхідно зробити, аби додати мітку розділу?

 

 

4 Лабораторна робота № 4. Управління обліковими записами і процесами користувачів

Date: 2015-12-12; view: 326; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию