Чи Рамдіск та Інітрд однакові?


10

Під час читання документації на ядро ​​про ramdisk у ramfs-rootfs-initramfs.txt у мене виникли сумніви, як пояснюється, що там є ramdisk, це те саме, що функції initrd, описані в публікації, при різниці між initrd-і-initramfs .

Може хтось мені про це уточнив ??

І якщо це те саме, я читаю, що для цього є багато недоліків, але все ж я переживаю в моєму ПК Fedora

initrd-2.6.29.4-167.fc11.i686.PAE.img

в моїй папці завантаження. Чи відрізняється від згаданої вище інірд ??

UPDATE_EDIT:
У статті я навіть бачив таку команду, як
# update-initramfs -u all
update-initramfs: Generating /boot/initrd.img-2.6.18-5-amd64

То як цей initramfs пов'язаний з initrd.img?

Відповіді:


13

Ramdisk - це набір блоків, який копіюється у виділений фрагмент пам'яті, а потім трактується як блок пристрою. На ramdisk створюється нормальна файлова система. Інітрд (початковий рамдиск) - рамковий диск, який встановлюється під час завантаження.

Інітрамфи - це щось інше. Це архів файлів cpio, який завантажується під час завантаження. Ядро завантажує вміст у віртуальну файлову систему, яку він викликає rootfs. На відміну від ramdisk, видалення файлів безпосередньо звільняє пам’ять, і немає ніякої додаткової файлової системи та шару блоків.

Обидва способи призводять до того, що файли будуть доступні до ядра під час завантаження до завантаження будь-яких пристроїв, і тому на практиці ви можете досягти подібних результатів з обома. Старіші системи використовують initrd (він був створений до initramfs), але сучасні системи повинні використовувати initramfs. Ви все ще можете побачити слово initrd посиланням на щось, що є насправді initramfs; це просто називання заради сумісності.


Дякую ефеменент, я хотів би знати, що ви мали на увазі під "ramdisk - це набір блоків". Як це трактується як блоковий пристрій після його копіювання?
Сен

@Sen: Існує rdмодуль (пізніше перейменований в brdі може бути вбудований в ядро), який виділяє купу пам'яті, створює блок-пристрій і відображає запити в / з блочного пристрою в читання / запис у пам'ять.
ефемієнт

Чи можете ви дати мені більше уявлення про цей модуль rd / brd?
Сен

Я також хотів би знати, що якщо я створив образ ramdisk, виконавши наступні кроки: mke2fs -vm0 / dev / ram 4096; mount -t ext2 / dev / ram / mnt; cd / mnt; cp / bin, / sbin, / etc, / dev ... файли в mnt; кд ../; umount / mnt; dd, якщо = / dev / ram bs = 1k кол = 4096 з = ext2ramdisk; Як я завантажую цей ext2ramdisk на своєму пристрої? Тільки завантажуючи його в барана, це спрацює?
Сен

@Sen: завантажувач відповідає за завантаження як ядра, так і init (rd | ramfs) в оперативну пам'ять; дивіться документацію завантажувача. Але навіть якщо ви будуєте його вручну (навіщо ??), ви повинні використовувати find /bin /sbin /etc /dev ... | cpio -o | gzip -c > initramfsзамість initrd.
ефемія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.