본문 바로가기
프로...Linux

[HowTo] iso, img, opk 화일 생성 및 추출

by 크크다스 2019. 2. 13.
반응형

[ Ramfs 확인 방법 ]

ramfs mount>

cd mkimages

mkdir mnt

sudo mount -o loop ramdisk mnt


ramfs file list>

tree -hf mnt



[ opkg 작업 ]

opkg 생성>

ar rc pkg_name.opk file1 file2.tar.gz file3.tar.gz


opkg 에서 전체 추출>

ar x  pkg_name.opk



[ IMG file 작업 ]

GnuPG (GNU Privacy Guard) 이용 : 

참고> https://johngrib.github.io/wiki/gpg/

https://wiki.debian.org/GnuPG

img file 생성 예>

GPG_HOME_PATH="$(topdir)/.gnupg"

GPG_KEY_ID="GPG_KEY"

gpg --homedir $(GPG_HOME_PATH) -se -r $(GPG_KEY_ID) --yes -z 0 -o $(pkg_name).img $(pkg_name).opk

 -s, --sign [file]             make a signature

 -e, --encrypt               encrypt data


 -r, --recipient NAME     encrypt for NAME

 -z N                          set compress level N (0 disables)

 -o, --output                use as output file


img file에서 추출 예>

GPG_HOME_PATH="$(topdir)/.gnupg"

GPG_KEY_ID="GPG_KEY"

gpg --homedir $(GPG_HOME_PATH) -d -r $(GPG_KEY_ID) -o $(pkg_name).opk $(pkg_name).img

 -d, --decrypt                 decrypt data (default)


 -r, --recipient NAME     encrypt for NAME

 -o, --output                use as output file


GPG_HOME_PATH 에는 암호화에 필요한 아래 화일들이 있어야 하며, 그 것을 이용하여 random_seed를 생성한다.

pubring.gpg

secring.gpg

trustdb.gpg

trustedkeys.gpg



GnuPG  Batch file 작성 예 : gpg.batch

%echo Generating a default key

Key-Type: default

Subkey-Type: default

Key-Length: 2048

Name-Real: YOUR NAME

Name-Comment: KEY DESCRIPTION

Name-Email: mine@email.com

Expire-Date: 0

%echo Start pubring

%pubring pubring.gpg

%echo Start secring

%secring secring.gpg

%echo commit

%commit

%echo done


[ ISO file 생성 작업 ]

ISO file 생성 예>

genisoimage -J -l -cache-inodes -allow-multidot -no-emul-boot -boot-load-size 4 -boot-info-table -r 

      -b isolinux/isolinux.bin 

      -c isolinux/boot.cat 

      -V "SNACK_BOOT" 

      -o $(ISO_FILENAME).iso ./


[ ISO file 추출 작업 ]

[from ISO] Cf> https://www.tecmint.com/extract-files-from-iso-files-linux/


    Mounting>


        mkdir mnt


        sudo mount -o loop $(ISO_FILENAME).iso mnt


        ls mnt


    7zip>


        sudo apt-get install p7zip-full p7zip-rar [On Debian/Ubuntu systems]


                sudo yum install p7zip p7zip-plugins      [On CentOS/RHEL systems]


                7z x $(ISO_FILENAME).iso


    isoinfo> 단점: 하나씩만 추출할 수 있다


                리스팅 보기 : 


                       기본) isoinfo -J -l -i $(ISO_FILENAME).iso


                       전체) isoinfo -J -f -i $(ISO_FILENAME).iso


                추출 : Redirection이 없으면 stdout으로 출력됨.


                       isoinfo -J -i $(ISO_FILENAME).iso -x 추출할_화일_패스 > 저장할_이름



반응형