티스토리 툴바

달력

012012  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

initramfs는 커널이 동작시에 필요한 console 디바이스 및 root 디렉토리등을 제공하는 ramfs인데,
요녀석을 이용하면 커널 이미지 내부에 미니멀한 root filesystem 을 집어넣어 시스템을 구축할 수 가 있다.

initramfs 를 사용하기 위한 condition은 아래와 같이 커널 빌드시에 옵션 및 rootfs path를 지정해준다.

아래의 경우에는 안드로이드의 ramdisk에 해당되는 path를 지정했다.

- initramfs support
#] make menuconfig

    ==> General setup                                        

           [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support                                 
           (/data/workspace/source/android/out/target/product/crespo/root) Initramfs source file              
           (0)     User ID to map to 0 (user root)                                                            
           (0)     Group ID to map to 0 (group root)                                                          
           [*]   Support initial ramdisks compressed using gzip 

커널이  빌드되면 zImage 안에 initramfs 에 해당하는 녀석이 포함되어 있을 것이다.
#] make zImage

커널에 포함된 initramfs 는 아래의 경로에 생성되며,
이를 풀어서 파일트리를 확인하거나 변경하는 것 등이 가능하다.
 
- unzip initramfs
#] cat <KERNEL>/usr/initramfs_data.cpio | cpio -i --no-absolute-filenames

- zip initramfs
#] find . -print0 | cpio -o0 -H newc > <KERNEL>/usr/initramfs_data.cpio

그러하다. 
저작자 표시 비영리 동일 조건 변경 허락
Posted by chlrbgh0


리눅스를 데스크탑이나 노트북 등에 직접 설치해서 사용하다 보면,

보통 사람들은 한참 만나지 못할 녀석을 맞닥뜨리게 되는 경우가 있다.
전원을 넣고 나면 다음과 같은 매정한 프롬프트만 내뱉고 있다.

grub rescue> 

흡~흡~ 학~학~

우선 진정 하도록하자.

이것은 아마도 내 하드의 비명이 시각적으로 표현된 것일 뿐이며,
우리의 데이터는 아직 안전할 것이다...MBR?은 아니겠지만 수퍼블록?은 아니겠지만 아무튼 하드가 힘들어 하는 것 뿐이다....그러리라 믿자!!

혹시 모르니 help 를 쳐보자 grub 커맨드는 써본지도 7~8년은 넘은거 같지만 혹시 모른다. 

grub rescue>  help
Unknown command `help` blabalbablalbalblablalbla


그러하다... 그런 거 없다....ㅠㅠ

먹먹한 가슴을 가다듬고 내 하드의 파티션은 안전한지 ls 를 쳐보자 

grub rescue>   ls
(hd0) ... ... (hd1) ... ...


그래 뭐 이런식으로 뜰것이다...아마도 뜰 것이다... 혹시나 안뜨면, 나는 잘 모르겠지만 용산 들고 가야 할지도 모른다... 그래도 희망은 버리지 말자!!


여기서 가장 중요한 것은... `LIVE Image` 가 필요할 때이다!!
이녀석은 뭐 ubuntu 사이트 등에서 쉽게 구할 수 있을 것이다. 그러려면 PC가 하나 더 있거나...없으면 가까운 PC방이라도 가서 받아야 한다....ㅠㅠ
다행히 우리의 콤피타들은 똘똘해서 USB 부팅도 되니 USB 설치해서 써도 괜춘하다!!

우리의 콤피타의 CMOS 는 스스로 조정하자...부트 디바이스를 CD-ROM이나 USB 로 지정해서 부팅하면 된다! 암 그렇고 말고!!

LIVE IMAGE 로 부팅을 하면  사랑스럽고 낯익은 배포판 GUI 가 우리를 맞아 주실 것이다!! 

터미널을 띄우자!

우리의 하드가 안전한지 확인해보자!!
#] ls -l /dev/hd* 

요즘나오는 SATA 방식들은 아래처럼 /dev/sda /dev/sdb 라는 패턴으로 뚜뚱! 나올 것이다!!

#] ls -l /dev/sd*  

파티션 들이 살아 계신지 확인하고!!
#] sudo fdisk -l /dev/sda
#] sudo fdisk -l /dev/sdb

각자의 루트 파티션 부터 체크해주자

#] sudo fsck /dev/sda1
#] sudo fsck /dev/sdb1


별다른 에러메시지를 토해내지 않는다면,
마운트가 되는지를 확인해보자.

위던 아래던 패널에서 Place  -> 9XXGB Filesystem? Harddisk? 아무튼 이런녀석들을 클릭해주면 
/media 디렉토리 아래에 마운트 시켜준다..GUI상의로는 바탕화면에 하드디스크 이미지가 뚜뚱!!!하고 나타나신다!!

이제 시스템을 리붓 시키면 잘 동작 할 것이다! 안되면 다른 하드를 구해서 시스템을 다시 설치하고 데이터라도 어떻게 백업하도록 하자.....ㅠㅠ

 
저작자 표시 비영리 동일 조건 변경 허락


밑에 글에 이어서...

irq 선언 및 등록시에 사용되던 함수도 일부 변경되었다.

- set_irq_type()
- set_irq_wake()

뭐 위 두가지 인데 내부 파라미터 및 사용방법은 동일하고 함수 네이밍이 변경되었다.
다른 이유가 있어서겠지만 이름은 그닥 맘에 들지 않는다...

- irq_set_irq_type()
- irq_set_irq_wake()

으흠으흠 그러하다.
 
저작자 표시 비영리 동일 조건 변경 허락
Posted by chlrbgh0