$ 업데이트됨b
scsi 관련 드라이버 찾기
$ scsi*.ko 찾기
USB 관련 드라이버 찾기
$ usb*.ko 찾기
이들 드라이버는
.ko는 접미사이며 시스템 설치 시 기본적으로 모듈로 컴파일됩니다. 실제로 커널의 일부로 컴파일될 수 있으므로 커널을 컴파일할 때 선택하기만 하면 됩니다.
[*]그게 다야. 그러나 대부분의 경우 모듈로 컴파일되어 커널 크기가 줄어들고 필요에 따라 로드 및 언로드할 수 있는 유연성이 제공됩니다. 다음은 모듈을 언로드하고, 모듈을 로드하고, 로드된 모듈의 상태를 보는 방법을 간략하게 보여줍니다.
상당한
/proc파일 시스템
모듈커널에 로드된 다양한 모듈의 상태를 확인하기 위한 파일 또는
lsmod직접 볼 수 있는 명령입니다.
$ 고양이 /proc/모듈
또는
$lsmod
scsi 및 usb 관련 드라이버를 확인하면 결과가 모듈 이름, 모듈 크기, 다른 모듈에서 참조하는 항목(참조 수, 이를 참조하는 모듈)으로 나열됩니다.
$ lsmod | egrep scsi|usbusbhid 29536 0hid 28928 1 usbhidusbcore 138632 4 usbhid,ehci_hcd,ohci_hcdscsi_mod 147084 4 sg,sr_mod,sd_mod,libata
아래에서 제거
USBHID모듈을 살펴보십시오(scsi 드라이버를 제거하지 마십시오! 시스템이 이 드라이버에서 실행될 수 있기 때문입니다. 정말로 가지고 놀고 싶다면 제거하기 전에 데이터를 저장하는 것을 잊지 마십시오).
rmmod이는 명령을 실행하여 수행할 수 있습니다. 먼저 루트 사용자로 전환하십시오.
$ sudo -s# rmmod usbhid
모듈정보를 다시 확인하시면 더 이상 보실 수 없습니다.
$ lsmod | grep ^usbhid
USB 마우스가 있는 경우 마우스를 이동했는데 이동할 수 없는 것을 발견하셨나요? 장치 드라이버를 더 이상 사용할 수 없으므로 해당 장치를 사용할 수 없습니다. 하지만 이제 이유를 알았으니 걱정하지 마세요. 다음을 사용하면 됩니다.
인스모드묶음
USBHID모듈이 다시 로드됩니다.
$ sudo -s# insmod `usbhid.ko 찾기`
usbhid.ko 찾기알아내는 것입니다
usbhid.ko모듈 경로(이전에 모듈이 없었던 경우)
업데이트됨, 그것을 사용하여 찾을 수 없을 것 같지만 다음으로 직접 이동할 수도 있습니다.
/lib/모듈디렉토리에서 사용됨
찾다묶음
usbhid.ko파일을 찾았습니다.
# insmod $(find /lib/modules -name *usbhid.ko* | grep `uname -r`)
이제 마우스를 다시 사용할 수 있습니다. 믿기지 않는다면 마우스를 다시 움직여보세요.:-)
이 시점에서는 하드웨어 장치와 장치 드라이버 간의 관계가 비교적 명확해야 합니다. 그렇지 않은 경우 아래에서 계속하십시오.
Linux 장치 드라이버는 해당 장치 파일과 연결되어 있으며 장치 파일은 하드웨어 장치와 일대일로 대응됩니다. 이러한 장치 파일은 시스템에 균일하게 저장됩니다.
/개발자/예배 규칙서.
예를 들어, scsi 장치는 다음에 해당합니다.
/dev/sda,
/dev/sda1,
/dev/sda2...아래에서 해당 장치 정보를 확인하세요.
$ ls -l /dev/sda*brw-rw---- 1 루트 디스크 8, 0 2007-12-28 22:49 /dev/sdabrw-rw---- 1 루트 디스크 8, 1 2007-12- 28 22:50 /dev/sda1brw-rw---- 1 루트 디스크 8, 3 2007-12-28 22:49 /dev/sda3brw-rw---- 루트 디스크 1개 8, 4 2007-12-28 22:49 /dev/sda4brw-rw---- 루트 디스크 1개 8, 5 2007-12-28 22: 50 /dev/sda5brw-rw---- 1 루트 디스크 8, 6 2007-12-28 22:50 /dev/sda6brw-rw---- 루트 디스크 1개 8, 7 2007-12-28 22:50 /dev/sda7brw-rw---- 루트 디스크 1개 8, 8 2007-12-28 22: 50/dev/sda8
첫 번째 열의 첫 번째 문자가 다음과 같은 것을 볼 수 있습니다.
비, 다섯 번째 열은 숫자 8입니다.
비해당 파일이 블록 장치 파일임을 나타냅니다.
기음이는 문자 장치(예: `/dev/ttyS0)를 의미합니다. 블록 장치와 문자 장치의 차이점은 여기에서 확인할 수 있습니다.
문자 장치: 문자 장치는 바이트 스트림처럼 액세스할 수 있는 장치입니다. 문자 터미널과 직렬 포트는 문자 장치입니다.
블록 장치: 파일 시스템은 블록 장치에 수용될 수 있습니다. 문자 장치와 달리 블록 장치는 읽거나 쓸 때 한 번에 하나 이상의 완전한 블록만 전송할 수 있습니다. Linux 운영 체제에서 애플리케이션은 문자 장치처럼 블록 장치를 읽고 쓸 수 있습니다(한 번에 임의 바이트의 데이터 읽기 또는 쓰기). 따라서 블록 디바이스와 캐릭터 디바이스의 차이점은 커널에서의 데이터 관리뿐이다.
숫자 8은 커널의 하드웨어 장치에 해당하는 장치 번호입니다. 커널에서 찾을 수 있습니다.
문서/devices.txt그리고
/proc/장치파일에서 장치 번호 할당을 찾습니다. 그런데 왜 동일한 장치가 다른 장치 파일에 해당합니까(
/dev/sda끝에 숫자가 다른 이유는 무엇입니까?
ㅋㅋㅋ결과의 열 6이 이에 해당합니다). 이는 실제로 서로 다른 장치의 서로 다른 부분을 구별하기 위한 것입니다. 하드 드라이브의 경우 하드 드라이브 내부의 다양한 파티션을 처리합니다. 커널의 경우 5열의 장치 번호를 통해 해당 하드웨어 장치만 찾으면 되지만 드라이버 모듈의 경우에는 다양한 파티션을 처리하는 방법도 알아야 하므로 추가 보조 장치 번호가 있습니다. , 즉 6열에 해당하는 내용입니다. 이와 같이 장치에는 주요 장치 번호(열 5)와 보조 장치 번호(열 6)가 있어 다양한 하드웨어 장치의 관리가 용이해진다.
장치 파일은 하드웨어에 해당하므로 직접 액세스할 수 있습니다.
/dev/sda(의 경우
IDE하드 드라이브인 경우 해당 장치는
/dev/hda(la) 장치에서 하드 디스크 정보를 읽습니다. 예:
사용
dd이 명령은 하드 디스크의 처음 512바이트를 복사하며 루트 사용자가 필요합니다.
$ sudo dd if=/dev/sda of=mbr.bin bs=512 count=1
사용
파일해당 정보를 보는 명령어
$ 파일 mbr.binmbr.bin: x86 부트 섹터, LInux i386 boot LOader; 파티션 3: ID=0x82, 시작 헤드 254, 시작 섹터 19535040, 1959930 섹터, 파티션 4: ID=0x5, 시작 헤드 254, 시작 섹터 21494970, 56661255 섹터, 코드 오프셋 0x48
또한 사용할 수 있습니다
od명령을 16진수 형식으로 읽고 분석합니다.
$ od -x mbr.bin
BS블록의 크기(바이트 단위)입니다.
바이트단위로),
세다블록 수입니다
이 정보는 직관적이지 않기 때문에(아래에서 자세히 분석할 예정임) 먼저 다른 장치 파일을 살펴보겠습니다. 이를 통해 장치 파일과 하드웨어 간의 대응 관계를 매우 직관적으로 보여줄 수 있습니다. 마우스를 예로 들어, 마우스에 해당하는 장치 파일의 정보를 읽어보겠습니다.
$ sudo -s# 고양이 /dev/input/mouse1 od -x |
마우스 드라이버가 다를 수 있으므로 장치 파일도 다를 수 있지만 모두
/dev/입력아래에.
마우스를 움직여서 다른 정보가 출력되는지 확인하세요. 이 원칙에 따라 우리는 종종 한쪽 끝에서 장치 파일을 읽습니다.
/dev/ttyS0상대방의 장치 파일에 있는 콘텐츠
/dev/ttyS0시리얼 포트 라인이 손상되었는지 확인하기 위한 내용을 작성해 보세요.
이 시점에서는 장치 드라이버, 장치 파일 및 하드웨어 장치 간의 관계에 더 깊은 인상을 받아야 합니다. 장치 드라이버의 작동 원리와 장치 드라이버 작성에 대해 심층적으로 이해하려면 아래 나열된 관련 정보를 살펴보고 장치 드라이버 작성 프로세스를 시작하십시오.
참고자료:
리눅스 커널 2.6 컴파일
Linux 시스템용 하드웨어 드라이버 작성 원칙
Linux에서 USB 장치의 원리, 구성 및 일반적인 문제
Linux 커널 모듈 프로그래밍 가이드
Linux 장치 드라이버 개발
실제로 메모리, USB 디스크 등은 파일 시스템의 기본 "저장" 장치로 사용될 수 있지만 여기서는 디스크와 파티션 간의 관계를 소개하기 위한 예로 하드 디스크만 사용합니다.
현재 Linux 파티셔닝은 최초의 PC 하드 디스크에서 사용된 파티셔닝 원리를 여전히 채택하고 있습니다. 이 파티셔닝 원리는 아래에서 단계별로 분석 및 설명됩니다.
먼저 몇 가지 개념을 살펴보겠습니다.
장치 관리 및 파티셔닝
Linux에서는 각 저장 장치가 시스템 장치 파일에 해당합니다.
IDE그리고
SCSI장치, 시스템 내
/개발자해당 포함 문자는 디렉토리에서 찾을 수 있습니다
HD그리고
SD장치 파일. 하드 디스크가 연결된 마더보드 장치 인터페이스 및 데이터 케이블 인터페이스에 따라,
HD또는
SD문자 뒤에 문자를 추가할 수 있습니다.
에이도착하다
지예를 들어 문자
hda,
HDB,
HDC그리고
sda,
sdb,
SDC또한 동일한 하드웨어 장치의 서로 다른 파티션을 구별하기 위해 끝에 숫자를 추가할 수 있습니다. 예를 들어
hda1,
hda2,
hda3그리고
sda1,
sda2,
sda3, 그래서
/개발자디렉토리에서 유사한 장치 파일을 많이 볼 수 있습니다.
각 파티션의 역할
파티셔닝을 할 때 기본 파티션과 논리 파티션의 문제가 자주 발생합니다. 이는 실제로 파티션 확장을 용이하게 하기 위한 것입니다. 다중 하드 디스크를 더 잘 관리하기 위해 논리 볼륨을 도입하는 것과 마찬가지로 기본 파티션과 논리 파티션을 도입하면 다음과 같은 이점이 있습니다. 파티션 관리를 쉽게 수행할 수 있습니다.
Linux 시스템의 각 하드 디스크 장치는 최대 4개의 기본 파티션(확장 파티션 포함)으로 구성됩니다.
주 파티션은 컴퓨터에서 운영 체제를 시작하는 데 사용되므로 각 운영 체제의 시작 프로그램, 즉 부팅 프로그램이 주 파티션에 저장되어야 합니다. Linux에서는 기본 파티션(또는 확장 파티션)이 처음 4개의 파티션 번호를 차지한다고 규정합니다. 따라서 기본 파티션에 해당하는 장치 파일이 다음과 같은 것을 볼 수 있습니다.
/dev/hda1-4또는
/dev/sda1-4,보다는
hda5또는
sda5.
확장 파티션은 더 많은 논리 파티션을 확장하는 데 사용됩니다. Linux에서는 논리 파티션이 차지합니다.
hda5-16또는
sda5-1612개의 숫자를 기다리세요.
파티션 유형
이 파티션의 파일 시스템 유형을 지정합니다. Linux는 msdoc, vfat, ext2, ext3 등과 같은 다양한 파일 시스템 유형을 지원합니다. 자세한 내용은 다음 섹션에서 자세히 소개하겠습니다.
다음으로 하드 디스크의 처음 512바이트를 분석합니다(예:
MBR) 파티션을 분석하고 이해합니다.
먼저 이 사진을 살펴보겠습니다.
설명하는 데 사용됩니다.
MBR구조.
MBR부트 부분, 파티션 테이블, 엔드 마크`(55AAH)를 포함하면 각각 512바이트 중 446바이트, 64바이트, 2바이트를 차지한다. 여기서는 파티션 테이블 부분, 즉 가운데 64바이트와 그림의 왼쪽 부분에만 초점을 맞췄습니다.
내가 사용하고 있기 때문에
SCSI하드 드라이브, 다음은
/dev/sda하드 디스크의 처음 512바이트를 장치의 파일에 복사합니다.
mbr.bin가운데.
$ sudo -s# dd if=/dev/sda of=mbr.bin bs=512 count=1
아래에서 사용하세요
파일,
od,
fdisk이 단락을 분석하는 명령을 기다립니다.
MBR더 깊은 이해를 위해 데이터를 위의 그래프와 비교해보세요.
$ 파일 mbr.binmbr.bin: x86 부트 섹터, LInux i386 boot LOader; 파티션 3: ID=0x82, 시작 헤드 254, 시작 섹터 19535040, 1959930 섹터, 파티션 4: ID=0x5, 시작 헤드 254, 시작 섹터 21494970, 56661255 섹터, 코드 오프셋 0x48$ od -x mbr.bin | tail -6 #중간 64바이트에만 집중하므로 결과의 마지막 6줄이 차단됩니다. 012a 00000000720 0000 0000 0000 0000 0000 0000 0000 fe000000740 ffff fe82 ffff 14c0 012a e7fa 001d fe000000760 ffff fe05 ffff fcba 0147 9507 0360 aa55$ sudo -s# fdisk -l | grep ^/ #MBR 관련 부분만 분석하고 논리 파티션 부분은 분석하지 않음 /dev/sda1 * 1 1216 9767488+ 83 Linux/dev/sda3 1217 1338 979965 82 Linux 스왑 / Solaris/dev/sda4 1339 4865 28330627+ 5 확장
파일명령 결과를 보면 방금 복사한 512바이트가 부트 섹터이고 세미콜론으로 구분된 부분은 다음과 같습니다.
부트로더, 파티션 3 및 파티션 4. 파티션 3의 유형은 82입니다.
교환파티션(다음을 통해 수행 가능)
fdisk당당한
엘관련 정보를 나열하는 명령)에 해당합니다.
fdisk결과에
/dev/sda3행의 5번째 열에서 파티션 3의 섹터 수는 1959930이며, 이를 바이트로 변환하면 다음과 같습니다.
1959930*512(현재 하드 드라이브의 기본 섹터 크기는 512바이트입니다.)
교환파티션의 기본 블록 크기는 1024바이트이므로 블록 수는
:
$ 에코 1959930*512/1024 |
정확히
fdisk결과
/dev/sda3마찬가지로 행의 네 번째 열에 해당하는 블록 수를 비교할 수 있습니다.
fdisk그리고
파일결과는 파티션 4에 대해 분석됩니다.
다시 보자
od명령의 결과는 16진수로 표시됩니다. 또한 파티션 3을 고려하십시오. 계산 후 파티션 3이 다음에 해당하는 것으로 나타났습니다.
od명령의 결과는 다음과 같습니다.
fe00 ffff fe82 ffff 14c0 012a e7fa 001d
첫 번째는 파티션 표시입니다.
00시, 위 그림을 보면 부팅 파티션이 아닌 것을 알 수 있습니다(
80시간표시된 것이 부팅 파티션입니다), 파티션 유형은 어떻습니까? ~을 위한
82시간,그리고
파일표시 결과는 일관됩니다. 이제 파티션 크기에 주목해 보겠습니다.
파일결과의 섹터 수입니다.
$ 에코 ibase=10;obase=16;1959930 bc1DE7FA |
그냥 해당
e7fa 001d, 마찬가지로 부팅 파티션의 결과를 고려하십시오.
0180 0001 fe83 ffff 003f 0000 1481 012a
파티션 태그:
80시간, 이는 단지 이 파티션이 부팅 파티션이라는 것을 반영한 것이며, 부팅 파티션이 위치한 디스크 섹터 상황은 010100, 즉 1면, 0트랙, 1섹터가 따른다는 것입니다. 다른 콘텐츠도 비교, 분석할 수 있습니다.
시간적 제약을 고려하여 자세한 내용은 아래 정보 또는 해당 시스템 매뉴얼을 참조하시기 바랍니다.
보충: 시스템을 설치할 때 사용할 수 있습니다.
fdisk,
cfdisk명령이 분할될 때까지 기다립니다. 특정 파티션에서 부팅하려면 다음을 입력해야 합니다.
80시간태그(예: 다음을 통해)
cfdisk파티션을 다음으로 설정하세요.
부팅 가능달성하기 위해.
참고자료:
리눅스 부팅 프로세스 내부
나만의 OS 개발: 부팅
Redhat9 디스크 파티션 소개
리눅스 파티션 하우투
논리 볼륨이 도입되기 전에는 파티션 유형과 파일 시스템 유형이 거의 동일하게 취급되었습니다. 파티션 유형을 설정하는 과정은 파티션을 포맷하고 해당 파일 시스템 유형을 설정하는 과정이었습니다.
다음에서는 파티션과 파일 시스템 유형 간의 관계를 설정하는 방법, 즉 지정된 파일 시스템 유형으로 파티션을 포맷하는 방법을 주로 소개합니다.
먼저 Linux에서 일반적인 파일 시스템 유형을 살펴보겠습니다(Linux에서 지원하는 모든 파일 유형을 보려면 다음을 사용할 수 있습니다).
fdisk당당한
엘보거나 전달하는 명령
남자 FS보려면 다음을 사용할 수도 있습니다.
/proc/파일 시스템현재 커널에서 지원하는 파일 시스템 유형을 확인하세요.)
ext2,
ext3,
ext4: 이 세 가지 유형은 Linux 루트 파일 시스템에서 일반적으로 사용되는 유형입니다.
교환: 리눅스 가상 메모리를 구현하는데 사용되는 파일 시스템으로, 일반적으로 설치 시 특수 파티션을 생성하고 다음과 같이 포맷해야 합니다.
교환파일 시스템(더 추가하려는 경우
교환파티셔닝의 경우 이 섹션의 참조 자료를 참조하여 익숙해질 수 있습니다.
dd,
mkswap,
스왑온,
교환다른 명령어의 사용법)
프로세스: 커널과 사용자 사이의 인터페이스로 존재하며 메모리에 내장되어 있는 비교적 특수한 파일 시스템입니다.
고양이명령 보기
/proc시스템 아래의 파일은 다음을 통해 수정될 수도 있습니다.
/proc/sys아래 파일은 커널 구성을 실시간으로 조정할 수 있습니다.
프로세스파일 시스템 마운트에서:
마운트 -t proc proc /proc
위의 파일 시스템 유형 외에도 Linux 지원에는 다음이 포함됩니다.
vfat,
iso,
xfs,
nfs다양한 공통 파일 시스템 유형 중 Linux에서는 Windows 등 다른 운영 체제에서 사용하는 파일 시스템을 자유롭게 보고 조작할 수 있습니다.
그렇다면 디스크와 이러한 파일 시스템 유형 간의 연결을 어떻게 설정합니까? 체재.
포맷 프로세스는 실제로 파티션을 재구성하는 프로세스입니다.
mkfs달성하기 위한 명령은 물론 전달할 수도 있습니다.
fdisk명령이 구현될 때까지 기다리십시오. 여기서만 소개합니다
mkfs,
mkfs기존 파티션을 포맷하는 데 사용할 수 있지만 파티션 작업을 수행할 수는 없습니다(디스크를 파티션하고 포맷하려는 경우 다음을 사용할 수 있습니다).
fdisk). 포맷 후 해당 파티션의 데이터는 특수 파일 시스템 유형으로 구성됩니다.
예를 들면 다음과 같습니다.
/dev/sda9파티션은 다음과 같이 포맷됩니다.
ext3파일 시스템.
$ sudo -s# mkfs -t ext3 /dev/sda9
각 파티션의 파일 시스템 유형을 나열하려면 다음을 사용할 수 있습니다.
fdisk -l주문하다.
자세한 내용은 다음 자료를 참고하시기 바랍니다.
참고자료:
Linux에서 스왑 파티션을 로드하는 단계
Linux에서 ISO 이미지 파일 생성 및 굽기
RAM 디스크 파티션 설명:[1],[2]
고급 파일 시스템 구현자 가이드
이전 섹션에서는 파티션을 특정 파일 시스템 유형으로 직접 포맷했지만 새로운 저장 장치 확장의 필요성을 고려하여 개발자는 파일 시스템과 파티션 사이에 논리 볼륨을 도입했습니다. 시간 제약을 고려하여 여기에서는 자세한 내용을 다루지 않습니다. Linux 논리 볼륨 관리에 대한 자세한 설명을 참조하세요.
파일 시스템이 최종적으로 제시하는 것은 ls, find, tree와 같은 명령을 사용하여 제시할 수 있는 시각적 구조입니다. 이는 거꾸로 된 "나무"와 같으며, 나무의 노드에 새로운 "나무"가 탑재될 수 있습니다.
다음은 파일 시스템 마운트에 대한 간략한 소개입니다.
파일 시스템은 장치(
산)를 마운트 지점이라고 하는 디렉터리에 추가합니다. 흥미롭게도 Linux에서는 디렉터리 자체를 다른 디렉터리에 마운트할 수 있고, 포맷된 파일도 특수 장치를 통해 마운트할 수 있습니다.
/개발/루프마운트하다(예:
iso문서). 또한, 파일 시스템과 관련하여 Linux는 로컬 파일 시스템뿐만 아니라 원격 파일 시스템(예:
nfs).
다음은 파일 시스템 마운트의 몇 가지 예를 간략하게 소개합니다.
루트 파일 시스템 마운트
마운트하려면 루트 권한이 필요합니다(예: 시스템 루트 파일 시스템 마운트).
/dev/sda1도착하다
/mnt
$ sudo -s# 마운트 -t ext3 /dev/sda1 /mnt/
확인하다
/dev/sda1장착 상황에서 볼 수 있듯이 장치는 여러 번 장착될 수 있습니다.
$ 마운트 | grep sda1/dev/sda1 on / ext3 유형(rw,errors=remount-ro)/dev/sda1 on /mnt 유형 ext3(rw)
이미 마운트된 파일 시스템의 경우 다른 속성을 지원하기 위해 다시 마운트할 수 있습니다.
$ 마운트 -n -o 다시 마운트, rw /
새 장치 마운트
커널이 이미 USB 인터페이스를 지원하는 경우 USB 플래시 드라이브를 삽입할 때 다음을 통과할 수 있습니다.
dmesg해당 장치 번호를 확인하고 마운트하는 명령입니다.
확인하다
dmesg결과의 마지막 몇 줄에 대해 다음과 같은 것을 찾으십시오.
/dev/sdNUSB 디스크에 해당하는 장치 번호를 찾기 위한 정보
$dmesg
여기서는 USB 디스크가
vfat일부 인쇄소에서는 Windows에서도 사용할 수 있도록 형식을 지정합니다.
# mount -t vfat /dev/sdN /path/to/mountpoint_directory
iso 파일 또는 CD 마운트
일부 iso 파일이나 iso 형식 디스크의 경우 다음을 사용할 수도 있습니다.
산마운트하라는 명령입니다.
ISO 파일의 경우:
# mount -t iso9660 /path/to/isofile /path/to/mountpoint_directory
CD의 경우:
# mount -t iso9660 /dev/cdrom /path/to/mountpoint_directory
원격 파일 시스템 마운트
# mount -t nfs 원격_ip:/path/to/share_directory /path/to/local_directory
proc 파일 시스템 마운트
# 마운트 -t proc proc /proc
프로세스파일 시스템은 메모리에 구성되어 있지만 디렉토리에 마운트될 수 있습니다. 일반적으로 장착
/proc일부 시스템 관리 및 구성 도구에서 사용할 수 있도록 디렉터리입니다. 예를 들어
맨 위명령은 이를 사용하여 메모리 사용량을 분석합니다(읽기
/proc/meminfo그리고
/proc/stat등의 파일);
lsmod커널 모듈의 상태를 얻는 명령(읽기
/proc/모듈);
netstat이를 통해 네트워크 상태를 가져오는 명령(읽기
/proc/net/dev및 기타 문서). 물론 관련 도구도 작성할 수 있습니다. 게다가 조정을 통해
/proc/sys디렉토리의 파일은 다음과 같이 시스템 구성을 동적으로 조정할 수 있습니다.
/proc/sys/net/ipv4/ip_forward파일에 숫자 1을 쓰면 커널이 패킷 전달을 지원할 수 있습니다. (자세한 내용은 다음을 참조하세요.
프로세스돕다,
man``proc)
디렉터리 마운트
$ 마운트 --bind /path/to/needtomount_directory /path/to/mountpoint_directory
예를 들어, ftp 서비스의 루트 디렉터리에 디렉터리를 마운트하고 다른 사람이 콘텐츠를 복사하지 않고도 공유할 수 있도록 해당 디렉터리에 리소스를 제공할 수 있다는 점은 매우 흥미롭습니다.
위에서는 장착만 언급했는데 제거 방법은 무엇입니까? 사용
마운트 해제마운트의 소스 주소 또는 마운트 지점(장치, 파일, 원격 디렉터리 등)을 사용하여 명령을 따르기만 하면 됩니다. 예를 들어:
$ umount /path/to/mountpoint_directory
또는
$ umount /path/to/mount_source
다수의 또는 자주 마운트되는 서비스를 관리하려는 경우 매번 수동으로 마운트하는 것은 좋지 않습니다. 지금 사용하실 수 있습니다
산구성 파일
/etc/fstab,묶음
산해당 매개변수는 다음과 같이 작성됩니다.
/etc/fstab파일에 해당하는 열에서 일괄 마운트를 수행할 수 있습니다(
마운트 -a) 및 제거(
마운트 해제 -a).
/etc/fstab열에는 파일 시스템, 마운트 지점, 유형 및 관련 옵션이 있습니다. 자세한 내용은 다음을 참조하세요.
fstab돕다 (
남자 fstab).
참고자료:
Linux 하드 디스크 파티션 및 장착 원리
파일 I/O에서 Linux 가상 파일 시스템 살펴보기
소스 코드 분석: 정적 분석 C 프로그램 함수 호출 다이어그램
Linux 파일 시스템에는 몇 가지 기본 디렉터리가 있으며, 서로 다른 기능을 가진 다양한 파일이 서로 다른 디렉터리에 저장됩니다. 가장 기본적인 디렉토리는 다음과 같습니다.
/등,
/lib,
/개발자,
/큰 상자시스템 구성 파일, 라이브러리 파일, 장치 파일 및 실행 프로그램을 각각 저장하는 등. 이러한 디렉토리는 일반적으로 임베디드 개발을 수행할 때 필요합니다.
비지박스도구가 이러한 기본 파일 시스템을 생성할 때까지 기다리십시오. 여기서는 매우 간단한 파일 시스템을 만들고 파일 시스템에 대한 다양한 기존 작업을 수행하여 파일 시스템에 대한 이해를 심화합니다.
아직도 기억나
dd주문? 고정된 크기의 파일을 생성하는 데 사용하면 됩니다.
1M(1024*1024바이트)파일
$ dd if=/dev/zero of=minifs bs=1024 개수=1024
여기에서 파일 형식을 확인하세요.
미니프가득 차있다
\0특정 데이터 구조가 없는 파일
$ 파일 minifsminifs: 데이터
설명하다:
/dev/제로아주 특별한 장치입니다. 읽으면 원하는 만큼 얻을 수 있습니다.
\0.
그런 다음 파일은 지정된 파일 유형의 파일 시스템으로 형식화됩니다. (파일도 포맷할 수 있다는 것이 믿기지 않습니까? 예, 장치뿐만 아니라 파일도 특정 파일 시스템 유형으로 구성할 수 있지만 일부 파일 시스템(예:
ext3) 대상은 최소한
64M공간).
$ mkfs.ext2 미니프
이때 파일 형식을 확인합니다.
미니프그냥 가져가
ext2파일 시스템 형식 구성
$ file minifsminifs: Linux rev 1.0 ext2 파일 시스템 데이터
파일은 파일 시스템 유형별로 구성되어 있으므로 다음을 사용할 수 있습니다.
산마운트하고 사용하라는 명령입니다.
다음으로 전환하세요.
뿌리사용자가 마운트하고 통과합니다.
-o 루프특정 장치와 연결하는 옵션
/개발/루프
$ sudo -s# 미니프 마운트 /mnt/ -o 루프
파일 시스템 정보를 보고 하나의 디렉터리 파일만 봅니다.
분실+발견
$ ls /mnt/분실+발견
읽기, 쓰기, 삭제 등을 포함하여 이 파일 시스템에서 다양한 일반 작업을 수행합니다. (각 작업 전에
미니프비교를 위해 파일의 복사본을 저장합니다. 관련 정보와 결합하여 다양한 작업으로 인해 발생하는 파일 시스템의 변경 사항을 심층적으로 분석하여 파일 시스템의 구현 원리를 심층적으로 이해할 수 있습니다. 데이터 정리 등)
$ cp minifs minifs.bak$ cd /mnt$ touch hello$ cd -$ cp minifs minifs-touch.bak$ od -x minifs.bak > orig.od$ od -x minifs-touch.bak > touch.od
파일을 생성한 후 현재 파일 시스템과 이전 파일 시스템의 유사점과 차이점을 비교합니다.
$ diff orig.od touch.oddiff orig.od touch.od61,63c61,64< 0060020 000c 0202 2e2e 0000 000b 0000 03e8 020a< 0060040 6f6c 7473 662b 756f 646e 0000 0000 0000< 0060060 0000 0000 0000 0000 0000 0000 0000 0000---> 0060020 000c 0202 2e2e 0000 000b 0000 0014 020a> 0060040 6f6c 7473 662b 756f 646e 0000 000c 0000> 0060060 03d4 0105 6568 6c6c 006f 0000 0000 0000> 0060100 0000 0000 0000 0000 0000 0000 0000 0000
비교를 통해, 파일이 추가되면 해당 파일 시스템의 위치가 크게 변경되는 것을 알 수 있었습니다.
$ 에코 안녕하세요, 세계 > /mnt/hello
구현하다
동조캐시의 데이터가 디스크에 기록되었는지 확인하는 명령(이 섹션의 그림 1 기억)
버퍼 캐시자, 여기 있어요
은닉처데이터가 디스크에 기록됨)
$ sync$ cp minifs minifs-echo.bak$ od -x minifs-echo.bak > echo.od
파일 내용을 작성한 후 파일 시스템과 이전 시스템의 유사점과 차이점을 비교하십시오.
$ diff touch.od echo.od
파일 시스템의 문자열 보기
$ 문자열 minifslost+foundhellohello, 세계
삭제
안녕하세요파일, 파일 시스템 변경 사항 보기
$ rm /mnt/hello$ cp minifs minifs-rm.bak$ od -x minifs-rm.bak > rm.od$ diff echo.od rm.od
파일 시스템의 문자열을 살펴본 결과, 파일이 삭제될 때 파일 내용을 덮어쓰지 않았으므로 이론적으로는 현재로서는 해당 내용을 여전히 복구할 수 있는 것으로 나타났습니다.
$ 문자열 minifslost+foundhellohello, 세계
위의 내용은 파일 시스템을 분석하기 위한 몇 가지 일반적인 도구에 대해서만 설명하고 몇 가지 일반적인 작업을 분석합니다. 파일 시스템의 구현 원리를 심층적으로 이해하려면 위의 도구 사용에 익숙해지고 관련 자료를 읽어보세요.
참고자료:
Linux에서 처음부터 미니 파일 시스템 구축
BusyBox를 사용하여 Linux에서 미니 파일 시스템 구축
ext2 파일 시스템
함께
퓨즈퓨즈의 출현으로 사용자 공간에서 파일 시스템을 개발하는 것이 가능해졌습니다. 자신만의 파일 시스템을 개발하려면 퓨즈를 사용하여 자신만의 파일 시스템을 개발하는 방법을 읽어 보는 것이 좋습니다.
2007년 12월 22일에 많은 정보를 수집하고 전체적인 프레임워크를 작성했습니다.
1차 초안은 2007년 12월 28일 오후에 완성되었습니다. 시간적 제약을 고려하여 더 이상 분석되지 않은 부분이 많습니다. 또한 일부 부분에서는 이해에 문제가 있을 수 있으며, 수정을 환영합니다.
2007년 12월 28일 저녁, 일부 정보가 수정되어 문서가 공식적으로 게시되었습니다.
29번, 장치 드라이버 및 하드웨어 장치에 대한 섹션을 추가하세요.