최신 버전으로 SD 카드를 포맷하려고 했습니다.데비안 제시라이트라즈베리파이에 사용하기 위한 이미지입니다. dd 명령을 사용하면 10MB를 복사한 후 장치에 남은 공간이 없다는 메시지가 나타납니다. SE를 검색하고 다양한 질문에 대한 답변을 사용해 보았지만 항상 같은 곳으로 돌아옵니다. 다음은 관심을 가질 수 있는 dd, fdisk, df 및 ls 명령의 출력입니다.
/dev/sdb는 SD 카드입니다.
dd bs=4M if=/home/user/Downloads/2017-02-16-raspbian-jessie-lite.img of=/dev/sdb
dd: error writing ‘/dev/sdb’: No space left on device
3+0 records in
2+0 records out
10485760 bytes (10 MB) copied, 0.0137885 s, 760 MB/s
fdisk -l /dev/sdb
Disk /dev/sdb: 10 MiB, 10485760 bytes, 20480 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdbcc7ab3
Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/sdb2 137216 2807807 2670592 1.3G 83 Linux
ls -al /dev/sdb*
-rw-r--r-- 1 root root 10485760 Mar 3 22:04 /dev/sdb
brw-rw---- 1 root disk 8, 17 Mar 3 22:05 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Mar 3 22:05 /dev/sdb2
brw-rw---- 1 root disk 8, 19 Mar 3 22:05 /dev/sdb3
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 226G 7.3G 207G 4% /
udev 10M 10M 0 100% /dev
tmpfs 1.6G 9.3M 1.6G 1% /run
tmpfs 3.9G 112K 3.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 792M 4.0K 792M 1% /run/user/119
tmpfs 792M 8.0K 792M 1% /run/user/1000
답변1
-rw-r--r-- 1 root root 10485760 Mar 3 22:04 /dev/sdb
/dev/sdb
장치가 아닌 일반 파일입니다. 당신도 rm /dev/sdb
언젠가는 달려본 적이 있을 것입니다. 장치가 연결되면 자동으로 생성되지만 루트로 명령을 실행하면 엉망이 될 수 있습니다. 이제 이것은 /dev/sdb
일반 파일이며, 다음 항목만 포함하므로 크기 제한이 더 낮은 인메모리 파일 시스템에 저장됩니다.장치 파일"컨텐츠를 저장하기 위해 이 장치 드라이버를 호출하십시오"라는 표시일 뿐이라는 것은 없습니다.
파일을 삭제합니다( rm /dev/sdb
루트로). 그런 다음 올바른 파일을 다시 생성하는 /dev/sdb
가장 쉬운 방법 은 SD 카드를 꺼냈다가 다시 삽입하는 것입니다. 이 작업이 완료되면 사용 중인 명령을 사용하거나 간단히 이미지를 복사할 수 있습니다.
</home/user/Downloads/2017-02-16-raspbian-jessie-lite.img sudo tee /dev/sdb >/dev/null
답변2
"공간 부족" 메시지도 받았는데, 이는 ISO 이미지 장치에서 /dev/sdb1 파티션으로 너무 작은 파티션(dd)을 덤프(dd)했기 때문입니다! 그리고 그것은 결코 시작되지 않습니다! 부팅 가능한 USB 스틱을 원하는 경우 어떻게 해야 하는지에 대한 답변이 잘못되었기 때문에 4년 후에 이 의견을 추가하고 있으므로 이에 대해 조금 더 자세히 설명했습니다.
USB 스틱 /dev/sdb(또는 sdc, sdf 등)가 있는 경우 dd 명령(또는 cat)을 사용하여 iso-boot-image(일반적으로 iso9660 파티션 포함)에서 부팅 가능한 디스크를 만들 수 있습니다.
dd if=/distfiles/debian-11.1.0-amd64.iso of=/dev/sdb bs=4M
마지막 매개변수인 bs=4M은 필요하지 않으며 단지 속도를 위한 것입니다. sdb1 파티션이 생성되었고 sdb2 abd(더 많은 파티션)가 생성되었을 수도 있습니다.
존재하는지 확인하십시오.
ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 32 Oct 22 20:59 /dev/sdb
brw-rw---- 1 root disk 8, 33 Oct 22 20:40 /dev/sdb1
brw-rw---- 1 root disk 8, 34 Oct 22 20:33 /dev/sdb2`
첫 번째 열의 b는 블록 장치("디스크")임을 나타냅니다. 이 경우 iso 이미지에는 2개의 파티션이 있습니다! 그런 다음 설치할 수 있습니다.
mount /dev/sdb1 /nod1
df -mT /nod1
/dev/sdb1 iso9660 378 378 0 100% /nod1
iso 이미지를 디스크나 USB 스틱에 저장하고 부팅 가능한 USB 스틱으로는 저장하지 않으려면 USB 스틱의 기존 파일 시스템(파티션)을 사용하고(아마도 mkfs 또는 easist로 포맷하고 파티션 편집기 사용) 그런 다음 파티션을 마운트하십시오.
mount /dev/sdb1 /nod1
df -mT /nod1
Filesystem Type 1M-blocks Used Available Use% Mounted on
/dev/sdc1 vfat 14844 6935 7910 47% /nod1
나중에 사용하기 위해 iso img를 저장하려면 다음을 수행하십시오.
dd if=/distfiles/debian-11.1.0-amd64.iso of=/nod1
(단, USB 스틱에서는 부팅할 수 없습니다.)
(내가 아는 한. 아마 미래에도?! :)
이제 장치의 파티션을 나열하면 여전히 iso9660이 아닌 fx.ext2 또는 vfat 파티션이 될 것이며문서debian-11.1.0-amd64.iso라고 합니다.
답변3
이미지에 쓰려면 파티션을 포맷해야 합니다. /dev/sdb
그것은 당신의 장치입니다. 두 개의 파티션이 있고 명령은 다음과 같습니다 /dev/sdb1
./dev/sdb2
dd bs=4M if=/home/user/Downloads/2017-02-16-raspbian-jessie-lite.img of=/dev/sdb2