마운트 된 배포판의 디스크에있는 실행 파일을 부팅하지 않고도 실행할 수 있습니까?

안녕

" 어떤 OS가 어떤 파티션에 있는지 알아 내는가? " 라는 질문 실제로 해당 배포판으로 부팅하지 않고도 마운트 된 배포판에서 실행 파일을 실행할 수 있는지 생각하게했습니다.

" chmod -R 000 / bin에서 복구하는 방법 "이라는 질문에 대한 대답 은 마운트 된 배포판의 파티션에서 로더를 호출 할 수 있다고 생각하게했습니다.

이것이 가능한가?

시도했을 때 작동하지 않았지만 다른 부분이 누락되었을 수 있다고 생각합니다.

내가 이것을 시도한 명령은 lsb_release. 중요한 경우 현재 64 비트 Fedora 14를 설치하고 있습니다.

$ sudo /lib/ld-2.13.so /usr/bin/lsb_release
/usr/bin/lsb_release: error while loading shared libraries: /usr/bin/lsb_release: invalid ELF header
Gilles 'SO- 그만 사악함'

예, 실행중인 커널이 마운트 된 배포판에서 바이너리를 실행할 수 있다면 가능합니다.

이를 위해서는 마운트 된 배포가 실행중인 프로세서 아키텍처 용이거나 호환되는 배포판이어야합니다. 예를 들어 x86 프로세서에서는 ARM 바이너리를 실행할 수 없습니다. 호환성은 CPU에 따라 다릅니다. 예를 들어 x86 / amd64에서 64 비트 바이너리는 64 비트 CPU에서만 실행되는 반면 32 비트 바이너리는 32 비트 및 64 비트 CPU 모두에서 실행됩니다. 호환성은 운영 체제에 따라 다릅니다. 예를 들어 x86_64 CPU에서 Solaris는 32 비트 및 64 비트 커널에서 64 비트 및 32 비트 프로그램을 서로 다르게 실행할 수 있습니다. Linux 64 비트 커널은 32 비트 프로그램을 실행할 수 있지만 그 반대의 경우는 불가능합니다. OpenBSD 64 비트 커널은 32 비트 프로그램을 실행할 수 없습니다.

고정 된 위치에서 파일을 찾지 않는 한 정적으로 연결된 실행 파일은 노력없이 제자리에서 실행됩니다. 마운트 된 배포에 최신 버전의 C 라이브러리가 있거나 다른 C 라이브러리 (예 : uClibc 대 Glibc)를 사용하거나 호스트가 사용자 영역을 지원하지 않는 다른 아키텍처를 사용하는 경우 동적으로 연결된 실행 파일이 작동하지 않을 수 있습니다. (예 : i386 vs amd64, armhf vs armel).

때로는 동적으로 연결된 실행 파일이 작동하도록하려면 동적 링커를 명시 적으로 호출하고 마운트 된 시스템의 라이브러리 디렉토리를 라이브러리 검색 경로에 먼저 배치해야합니다.

LD_LIBRARY_PATH=/mnt/lib:/mnt/usr/lib /mnt/lib/ld-linux.so.2 /mnt/bin/foo

마운트 된 시스템의 프로그램이 올바른 위치 (로더, 라이브러리, 구성 파일, 데이터 파일 등)에서 필요한 모든 것을 찾을 수 있도록하는 쉬운 방법은 chroot 에서 실행하는 것입니다 . chroot는 파일 시스템의보기를 단일 디렉토리와 하위 디렉토리로 제한합니다. 루트 만 chroot명령을 호출 할 수 있습니다 .

chroot /mnt /bin/foo

프로그램이 /mnt루트 디렉토리로 실행되기 때문에 해당 계층 구조 외부에는 아무것도 표시되지 않습니다. no /home(또는에서 온 것 /mnt), no /proc,에 대한 정적 기본값 만 /dev등입니다. 다음과 같은 특수 파일 시스템을 /proc마운트 할 수 있습니다. 외부 ( mount -t proc proc /mnt/proc) 또는 내부 ( mount -t proc proc /proc) 에서 chroot . Linux에서는를 사용하여 디렉토리를 두 ​​번째 위치에 다시 마운트 할 수 있습니다 (이미있는 곳에 남아있는 동안) mount --bind. 또는을 사용 mount --rbind하여 지정된 디렉토리 아래에 마운트 된 파일 시스템을 복제 할 수도 있습니다.

mount --rbind /dev /mnt/dev
mount --bind /home /mnt/home
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/foo

데비안과 일부 다른 배포판은 이러한 마운트를 자동화하고 다른 기능을 수행하기 위해 schroot 라는 도구를 제공합니다 . 일회성 일에는 과잉이지만 여러 배포유지 하려는 경우 편리합니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

NTFS 파일 시스템에 저장된 .iso 내에서 RAM의 배포판을 실행할 수 있습니까?

분류에서Dev

Java-먼저 하드 디스크에 쓰지 않고 암호화 된 기본 실행 파일을 실행할 수 있습니까?

분류에서Dev

마운트 된 디스크의 오류 만보기 위해 fsck를 실행할 수 있습니까?

분류에서Dev

파일에서 상대 가져 오기를 사용하지 않고 다른 디렉토리의 Python 스크립트에서 파일 (다른 모듈을 가져 오는)을 어떻게 실행할 수 있습니까?

분류에서Dev

마운트 된 파티션에서 실행 파일을 실행할 수 없습니다.

분류에서Dev

sshfs를 통해 마운트 된 파일을 어떻게 실행할 수 있습니까?

분류에서Dev

디렉토리의 모든 파일에 대해 명령을 실행하고 'TIFF 헤더를 읽을 수 없음'이 포함 된 출력을 얻는 다른 파일에 대해 mv를 실행할 수 있습니까?

분류에서Dev

TMP 파일을 어떻게 실행하고 실행할 수 있습니까?

분류에서Dev

Windows 7을 네트워크에 연결하지 않고도 무기한 실행할 수 있습니까?

분류에서Dev

터미널에서 iso를 마운트하고 실행할 수 있습니까?

분류에서Dev

cppcheck는 실제로 검사하지 않고 모든 파일을 나열하기 위해 테스트 실행을 수행 할 수 있습니까?

분류에서Dev

Pi에서 스크립트를 실행하고 SSH를 닫을 때 계속 실행할 수 있습니까?

분류에서Dev

vim 스크립트 내에서 실행 된 쉘 명령의 출력을 파일로 리디렉션 할 수 있습니까?

분류에서Dev

첨부 된 React 웹 애플리케이션을 어떻게 컴파일하고 실행할 수 있습니까?

분류에서Dev

마운트 된 폴더가있는 도커 이미지를 실행할 수 없습니다.

분류에서Dev

SLURM이 작업의 실행 폴더에만 액세스하고 다른 파일을 변경하지 않도록 강제 할 수 있습니까?

분류에서Dev

Linux에서 지정된 디스크가 마운트 해제 될 때 실행되는 스크립트를 어떻게 가질 수 있습니까?

분류에서Dev

부팅 가능한 장치없이 마운트되지 않은 파티션에 Linux 배포판을 설치할 수 있습니까?

분류에서Dev

스크립트를 실행하고 생성하는 이메일에 포함하는 데 걸리는 시간을 어떻게 측정 할 수 있습니까?

분류에서Dev

실행 명령 (예 : F5)의 일부로 배치 파일을 실행할 수 있습니까?

분류에서Dev

methd를 실행하지 않고 Singleton의 값을 반환 할 수 있습니까?

분류에서Dev

디렉토리 외부의 쉘 파일에서 컴파일 된 Java 또는 C 프로그램을 어떻게 실행할 수 있습니까?

분류에서Dev

Bash 스크립트를 실행할 때 동일한 스크립트가 이미 실행되고 있지 않은지 어떻게 확인할 수 있습니까?

분류에서Dev

쉘 명령을 실행할 수 있도록 FTP를 마운트하십시오.

분류에서Dev

쉘 명령을 실행할 수 있도록 FTP를 마운트하십시오.

분류에서Dev

fstab 마운트 된 vfat 파티션에서 .sh 파일을 실행할 수 없습니다.

분류에서Dev

로컬로 실행 된 스크립트가 원격 서버에서 명령을 실행할 수 있습니까?

분류에서Dev

재부팅하지 않고 새 파티션을 / var / log에 마운트 할 수 있습니까?

분류에서Dev

C #에서 PowerShell 셸을 실행하고 계속 실행하면서 (동 기적으로) 여러 PowerShell 스크립트를 실행할 수 있습니까?

Related 관련 기사

  1. 1

    NTFS 파일 시스템에 저장된 .iso 내에서 RAM의 배포판을 실행할 수 있습니까?

  2. 2

    Java-먼저 하드 디스크에 쓰지 않고 암호화 된 기본 실행 파일을 실행할 수 있습니까?

  3. 3

    마운트 된 디스크의 오류 만보기 위해 fsck를 실행할 수 있습니까?

  4. 4

    파일에서 상대 가져 오기를 사용하지 않고 다른 디렉토리의 Python 스크립트에서 파일 (다른 모듈을 가져 오는)을 어떻게 실행할 수 있습니까?

  5. 5

    마운트 된 파티션에서 실행 파일을 실행할 수 없습니다.

  6. 6

    sshfs를 통해 마운트 된 파일을 어떻게 실행할 수 있습니까?

  7. 7

    디렉토리의 모든 파일에 대해 명령을 실행하고 'TIFF 헤더를 읽을 수 없음'이 포함 된 출력을 얻는 다른 파일에 대해 mv를 실행할 수 있습니까?

  8. 8

    TMP 파일을 어떻게 실행하고 실행할 수 있습니까?

  9. 9

    Windows 7을 네트워크에 연결하지 않고도 무기한 실행할 수 있습니까?

  10. 10

    터미널에서 iso를 마운트하고 실행할 수 있습니까?

  11. 11

    cppcheck는 실제로 검사하지 않고 모든 파일을 나열하기 위해 테스트 실행을 수행 할 수 있습니까?

  12. 12

    Pi에서 스크립트를 실행하고 SSH를 닫을 때 계속 실행할 수 있습니까?

  13. 13

    vim 스크립트 내에서 실행 된 쉘 명령의 출력을 파일로 리디렉션 할 수 있습니까?

  14. 14

    첨부 된 React 웹 애플리케이션을 어떻게 컴파일하고 실행할 수 있습니까?

  15. 15

    마운트 된 폴더가있는 도커 이미지를 실행할 수 없습니다.

  16. 16

    SLURM이 작업의 실행 폴더에만 액세스하고 다른 파일을 변경하지 않도록 강제 할 수 있습니까?

  17. 17

    Linux에서 지정된 디스크가 마운트 해제 될 때 실행되는 스크립트를 어떻게 가질 수 있습니까?

  18. 18

    부팅 가능한 장치없이 마운트되지 않은 파티션에 Linux 배포판을 설치할 수 있습니까?

  19. 19

    스크립트를 실행하고 생성하는 이메일에 포함하는 데 걸리는 시간을 어떻게 측정 할 수 있습니까?

  20. 20

    실행 명령 (예 : F5)의 일부로 배치 파일을 실행할 수 있습니까?

  21. 21

    methd를 실행하지 않고 Singleton의 값을 반환 할 수 있습니까?

  22. 22

    디렉토리 외부의 쉘 파일에서 컴파일 된 Java 또는 C 프로그램을 어떻게 실행할 수 있습니까?

  23. 23

    Bash 스크립트를 실행할 때 동일한 스크립트가 이미 실행되고 있지 않은지 어떻게 확인할 수 있습니까?

  24. 24

    쉘 명령을 실행할 수 있도록 FTP를 마운트하십시오.

  25. 25

    쉘 명령을 실행할 수 있도록 FTP를 마운트하십시오.

  26. 26

    fstab 마운트 된 vfat 파티션에서 .sh 파일을 실행할 수 없습니다.

  27. 27

    로컬로 실행 된 스크립트가 원격 서버에서 명령을 실행할 수 있습니까?

  28. 28

    재부팅하지 않고 새 파티션을 / var / log에 마운트 할 수 있습니까?

  29. 29

    C #에서 PowerShell 셸을 실행하고 계속 실행하면서 (동 기적으로) 여러 PowerShell 스크립트를 실행할 수 있습니까?

뜨겁다태그

보관