���������� ����ũ ���� ����̽� ����ϱ� ------------------------------------------ Paul Gortmaker 95�� 12�� �ű���: ������(xunil@linuxfan.com) 99�� 6�� 28�� ����: 1) ���� 2) Ŀ�� ���ɾ� ���� �Ķ���� 3) ���ο� Ŀ�ο� "rdev -r" ���ɾ� ����ϱ� 4) ���� ����ũ ����� ���� 1) ���� ------- Ŀ�� ���� 1.3.48���ķ� ����ũ ����̹��� ���� �κ��� �ٲ����. ���� ������ ���ý� Ŀ���� �� �����ϱ� ���� �� ��� ����߱� ������ "ramdisk=1440 �̳� rdev -r /dev/fd0 1440"���� ũ�� �Ķ���� �����ؼ� ��ŭ�� �� ���� �������� Ŀ�ο��� �˷���� �ߴ�. ������ ������ ����ũ�� ������ �ʿ��� ������ �������� �ڶ� �ȴ�. �̴� ���� ���� ij���� �̿��ؼ� ���� �����̴�. ����̹��� �ڽ��� ���� ���۸� Ŀ���� ���߿� ������� ���ϰ� �Ϸ��� "BH_Protected" �÷��� ǥ���� ���´�. ���� ������ ���� ũ�� �Ķ���ʹ� �� �̻� �ʿ䰡 ���� �ư� ���ο� ���ɾ� ���� �Ķ���Ͱ� �����. ���� "rdev -r" �̳� "ramsize"(���� rdev�� �ɺ��� ��ũ�� �Ǿ� �ִ�.) ���ɾ �ٲ����. ���ο� ����ũ�� 16���� ����ũ���� ������ ������ rd.c�� �ణ �����ָ� 255������ ������ ���� �ִ�. 1�� �̻��� ����ũ�� ������ 'mknod /dev/ramX b 1 X'(X=����)�� �ϰ� 'chmod'�� �Ἥ �۹̼��� �ٲ����. �⺻ /dev/ram(disk)�� ���̳� �ѹ� 1�� ���ϱ� ram2���� �����ؼ� �ʿ��� ��ŭ ����� �ȴ�. �� �� Ȯ���� �ϱ� ���ؼ� ������ "ramdisk=<ram_size>"�� "ramdisk_size=<ram_size>"�� �ٲ����. ������ "ramdisk=<ram_size>"�� ȣȯ���� ���� ���� ���� ������ Ŀ�� ���� 2.1.X ���� �뿡�� ������ ���̴�. ���ο� ����ũ�� ����� ����ũ �̹����� �ε��� ���� �ִ�. �̷ν� ��ġ ���ϳ� ���� ���Ͽ� �� �� ���� ���α��� ����Ǿ� �� ���� �ִ�. ����: ����� �ý��ۿ� "/dev/ram"�̳� "/dev/ramdisk", Ȥ�� �� �� ���� �� �ִ�. �� ���������� �̵��� �Ȱ��� ����Ѵ�. ��, ���ο� ����ũ�� config �ɼ��� �Ǿ���. "make config"�� �� �� ����ũ�� ������ ������ ������ ���� �ִ�. 2) Ŀ�� ���ɾ� ���� �Ķ���� ---------------------------- ramdisk_start=NNN ================= �÷��� ���Ͽ� Ŀ���� ����� ����ũ �̹����� ���� ���� ��츦 ���� "ramdisk_start=<offset>" ���ɾ �߰��Ǿ���. ������ Ŀ���� ����� ����ũ ���� �ý��� �̹����� ���Ե� ���� ����. �ֳ��ϸ� Ŀ���� 0��° �������� �־�� ���̿����� ��Ʈ ���� ���� �� �ְ� �� ������ Ŀ���� �ڱ� �ڽ��� ����ؼ� ������ ������ �����̴�. ����: ���� ������� ���� ����ũ �̹����� ���ٸ� Ŀ���� ����ũ�� �ε�� ���� �ý����� �Ϻκ��� �� ���� �ְ�, ���η� ������ ���� ��ų �� �ִ�. Ȥ�� �� �ΰ����� ���� �̹�������ó�� �� ������ ������ �� ���� �ִ�. ���� �� ������ ��Ʈ/��Ʈ �ý���(Ŀ���� 1�� ����, ����ũ �̹����� 2�� ����)�� ���ٸ� ����ũ�� 0�� �������� ������ ���̰� �ɼ��� �翬�� 0�� �� ���̴�. �� ���� 0�� �⺻���̱� ������ "ramdisk_start" �ɼ��� ���� �ʾƵ� �ȴ�. ���� �� �忡 350 kb ������ "zImage"(Ŀ��)�� 1 Mb ������ "fs_image.gz"(����� ���� �ý���)�� �ִ´ٸ� �� ���� �ɼ��� ���� ��� �Ѵ�. ���� ��� "fs_image.gz" �� ������ 400 kb ��ġ�� �����ߴٸ�, "ramdisk_start=400" �̶�� ��� �� ���̴�. load_ramdisk=N ============== �� �Ķ���ʹ� ����ũ �̹����� ���� ������ �ƴ����� �����Ѵ�. "load_ramdisk=1"�̶�� �ϸ� �÷��ǿ��� ����ũ�� ���� ���̴�. �⺻���� 0�̴�. prompt_ramdisk=N ================ �� �Ķ���ʹ� ����ũ �̹����� ���� �ִ� ������ ���� �� �ְ� ��� ���� �� �ִ��� �������� �����Ѵ�. ���� �� �忡 Ŀ�ΰ� ����ũ �̹����� ���� ��� �ִٸ� ��� ���� �ʿ䰡 �����Ƿ� "prompt_ramdisk=0"�̶�� �ϸ� �ȴ�. ������ �� ������ ������ �ִٸ� ������ �ٲ� �ð��� �ʿ��ϹǷ� "prompt_ramdisk=1"�̶�� �ϸ� �ȴ�. �⺻���� 1�̴�. ramdisk_size=N ============== ����ũ ����̹��� ����ũ�� N k ũ��� ��� �Ѵ�. �⺻���� 4096 (4 MB)�̴�. 3) ���ο� Ŀ�ο� "rdev -r" ���ɾ� ����ϱ� ------------------------------------------ "rdev -r" ���ɾ ��Ʈ�ϴ� Ŀ�� �̹����� �ִ� ����(2 ����Ʈ)�� ������ �ٲ����. ���� 11��Ʈ(0-10)�� ����ũ�� 2 Mb(2^11)������ ��� ã�� �������� �������ش�(������ ũ�⸦ ��Ÿ�´�.). 14 ��Ʈ�� ����ũ�� �ε���� �� ������ ��Ÿ����, 15 ��Ʈ�� ����ũ�� �б����� ������ �� �������� ��Ÿ����. ����ũ�� �������� �ڶ� �� �ֱ� ������ ũ�� �ʵ�� �ʿ䰡 ��������. 11 ��Ʈ���� 13 ��Ʈ ������ ���� ������ �ʰ� 0���� ä���� �ִ�. �Ʒ� ���ڵ��� ����ʹ� �ٸ��� ���� �ź��� ����� �ƴϴ�. ./arch/i386/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF ./arch/i386/kernel/setup.c:#define RAMDISK_PROMPT_FLAG 0x8000 ./arch/i386/kernel/setup.c:#define RAMDISK_LOAD_FLAG 0x4000 �������� ���� �� ��¥�� ��Ȳ�� ������ ����. ù ��° ���Ͽ��� Ŀ���� ��� ���� ���̰�, �� ��° ���Ͽ��� ����ũ �̹����� ���� ���̴�. ����ũ�� ������ ó������ 0 kb ������ ������ ������ �ϹǷ� 0�� ��Ʈ���� 13�� ��Ʈ�� 0���� ��Ʈ�� �ؾ� �� ���̴�. "ramdisk_start=0" ����ũ�� �ε�� ���̹Ƿ� 14�� ��Ʈ�� ��Ʈ�� �Ǿ�� �� ���̴�. "load_ramdisk=1" ������ ���� ������ �ϹǷ� 15�� ��Ʈ ���� ��Ʈ�� �Ǿ�� �Ѵ�. "prompt_ramdisk=1" �̰͵��� �� ��ġ�� rdev ���忡 �� ���� 2^15 + 2^14 + 0 = 49152�� �ȴ�. Ŀ���� �� ������ ������ ���� ����� �ǰڴ�. /usr/src/linux# cat arch/i386/boot/zImage > /dev/fd0 /usr/src/linux# rdev /dev/fd0 /dev/fd0 /usr/src/linux# rdev -r /dev/fd0 49152 ��Ʈ ������ ���η� ������ �ȴٸ� ���� �۾��� ����ó�� ����������. append = "ramdisk_start=0 load_ramdisk=1 prompt_ramdisk=1" ramdisk_start = 0 �� prompt_ramdisk = 1 �� �⺻���̹Ƿ� �̷��� �� ���� �ִ�. append = "load_ramdisk=1" 4) ���� ����ũ ����� ���� ����ũ �̹����� ������� ������ ���� ����̽��� �־�� �Ѵ�. ����ũ ��ü ���� ������� �ְ� ������� �ʴ� ��ũ ��Ƽ��(��Ʈ�� ���� ��Ƽ�� ����)���� �� ���� �ִ�. �� ���������� ����ũ ����̽�, "/dev/ram"�� ����� ���̴�. ����: �� ����� 8 Mb������ ���� ���� �ý��ۿ��� �ؼ��� �� �ȴ�. /dev/ram ��ſ� ������ ��ũ ��Ƽ���� ���ٸ� �� ���� ������ ������� �ʴ´�. ��) ��ŭ�� ����ũ�� �� ������ �����϶�. ���⼭�� 2 Mb �� ���ڴ�. ����ũ ����̽��� 2 Mb �� ������.(�� �ܰ�� ������ ���ʿ������� ���߿� �������� ��.) ���⸦ 0���� ä��� ���� ����.(�Ϲ� ��ũ ���� ���� Ư���� �� ����.) �ֳ��ϸ� ����� ���� �̹����� �����ϰ� ���� ������ �� �� �ְ��� ����DZ� �����̴�. dd if=/dev/zero of=/dev/ram bs=1k count=2048 ��) �ű�ٰ� ���� �ý����� ������. �츮�� ext2fs�� ������. mke2fs -vm0 /dev/ram 2048 ��) ����Ʈ�� �ϰ� �ʿ��� ���ϵ�(/etc/* /dev/* ...)�� ������ ��, ��Ʈ�� �ض�. ��) ����ũ�� �����ض�. ������ �����ϰ� �ִ� ������ 50%������ ������ �� ���̴�. �� ���� ���� �κ��� ����� ���ܵ� ���̴�. dd if=/dev/ram bs=1k count=2048 | gzip -v9 > /tmp/ram_image.gz ��) Ŀ���� ���Ͽ��� ����־��. dd if=zImage of=/dev/fd0 bs=1k ��) ����ũ �̹����� Ŀ�� ���ʿ� ����־��. �� �� ���� Ŀ�κ��� �ణ ū ���� �ɼ����� ���� ���߿� (�� ū) �ٸ� Ŀ���� ���� ��, ����ũ �̹����� ���� ���� �ʴ´�. 350 kb ¥�� Ŀ���̶�� �ɼ��� 400 kb ���� �ִ� ���� ������ ���̴�. ������ ���� �ɼ� + ram_image.gz �� ũ�Ⱑ ���� �뷮���� ũ�� �� �ȴٴ� ���̴�.(���� 1440 kb) dd if=/tmp/ram_image.gz of=/dev/fd0 bs=1k seek=400 ��) "rdev" ���ɾ �Ἥ ��Ʈ ����̽��� ����ũ �ɼ�, ������Ʈ �÷��� ���� ��Ʈ�ض�. �� �������� �� ���� prompt_ramdisk=1, load_ramdisk=1, ramdisk_start=400 �̹Ƿ� 2^15 + 2^14 + 400 = 49552 �� �� ���̴�. rdev /dev/fd0 /dev/fd0 rdev -r /dev/fd0 49552 �������! ���� ����� ��Ʈ/��Ʈ ����ũ ������ �����. ��)���� ��)������ �������� �Ἥ �� ���� ���� ���̴�. ----------------------------------------------------------------------------- Paul Gortmaker 95�� 12�� ----------------------------------------------------------------------------- �ؼ�: ������(xunil@linuxfan.com) 99�� 6�� 28��