윈도우에 연결된 USB를 우분투에서 연결하고 싶기 떄문에.
sdb가 usb 메모리 장치임. sd a,b,c,d,e 이런식으로 쭉 나옴.
rootfs bootfs가 있으면 sd카드임.
$ sudo apt install gparted pv dcfldd
장치를 언마운트
파티션 번호를 뺀 장치 전체를 백업받고 싶기 때문에 명령어를 칠때 sdb 뒤에 숫자를 안친다.
ubuntu@ubuntu8:~$ sudo dd if=/dev/sdb of=sdimage_wcm.img status=progress
dd는 블록 단위로 파일을 복사하거나 파일 변환을 할 수 있는 명령어 input file은 dev의 sdb 파티션 구분없이 전부 & output file은 sdbimage.img 이고 status는 progress로 해주고 실행
용량에 따라 시간은 꽤 걸림. 수십분에서 한시간 까지도 걸림.
ubuntu@ubuntu8:~$ sudo dd if=/dev/sdb of=sdimage.img status=progress
405127680 bytes (405 MB, 386 MiB) copied, 28 s, 14.5 MB/s
dd: error reading '/dev/sdb': Input/output error
802272+0 records in
802272+0 records out
410763264 bytes (411 MB, 392 MiB) copied, 54.8896 s, 7.5 MB/s
이런거 뜨면 다시해야됨. 용량보다 작게 되도 다시해야됨.ㅠㅠ
계속 안되서 결국 다른 컴퓨터의 가상환경으로 다시 진행하였음.
파일 시스템 문제인걸로..
sync 명령으로 sd카드를 안전하게 제거하고
메모리 buffer에 있는 내용을 harddisk에 동기화 시키는 명령어임.
sudo sync
image 파일이 root 권한으로 생성되었으므로, 파일 소유자로 권한을 변경해준다.
ubuntu@ubuntu8:~$ ls -l
total 31167060
-rw-r--r-- 1 ubuntu ubuntu 31914983424 2월 2 15:02 sdimage_wcm.img
ubuntu@ubuntu8:~$ sudo chown ubuntu:ubuntu sdimage_wcm.img
ubuntu@ubuntu8:~$ ls -l
total 31167060
-rw-r--r-- 1 ubuntu ubuntu 31914983424 2월 2 15:02 sdimage_wcm.img
ubuntu@ubuntu8:~$ sudo fdisk -l sdimage_wcm.img
Disk sdimage_wcm.img: 29.74 GiB, 31914983424 bytes, 62333952 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: 0x921b283c
Device Boot Start End Sectors Size Id Type
sdimage_wcm.img1 8192 1056767 1048576 512M c W95 FAT32 (LBA)
sdimage_wcm.img2 1056768 62333951 61277184 29.2G 83 Linux
ubuntu@ubuntu8:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 4023340 0 4023340 0% /dev
tmpfs 812812 2968 809844 1% /run
/dev/sda5 153188848 50490196 94844316 35% /
tmpfs 4064052 0 4064052 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 4064052 0 4064052 0% /sys/fs/cgroup
/dev/loop0 64896 64896 0 100% /snap/core20/1828
/dev/loop2 354688 354688 0 100% /snap/gnome-3-38-2004/119
/dev/loop3 508928 508928 0 100% /snap/gnome-42-2204/141
/dev/loop1 128 128 0 100% /snap/bare/5
/dev/loop4 358144 358144 0 100% /snap/gnome-3-38-2004/143
/dev/loop5 75904 75904 0 100% /snap/core22/1033
/dev/loop7 51072 51072 0 100% /snap/snapd/18357
/dev/loop6 47104 47104 0 100% /snap/snap-store/638
/dev/loop8 93952 93952 0 100% /snap/gtk-common-themes/1535
/dev/loop9 12672 12672 0 100% /snap/snap-store/959
/dev/sda1 523248 4 523244 1% /boot/efi
tmpfs 812808 36 812772 1% /run/user/1000
/dev/loop10 41472 41472 0 100% /snap/snapd/20671
/dev/loop11 65536 65536 0 100% /snap/core20/2105
여기서 안쓰고 있는 번호를 쓰면 됨. 12번 쓰겠음.
ubuntu@ubuntu8:~$ sudo losetup /dev/loop12 sdimage_wcm.img
ubuntu@ubuntu8:~$ sudo partprobe /dev/loop12
그래픽 사용하는 명령어라 putty에서는 안됨. 우분투 가상환경으로 가서 터미널 열고
ubuntu@ubuntu8:~$ sudo gparted /dev/loop12
p2 부분 우클릭하고 resize/move
노랑부분만 사용중인 부분이니 거기까지 쭉 땡겨준다.
32 -> 6GB로 줄어든거임.
이제 Edit -> Apply All Pperations를 눌러 적용한다. Save details를 누르면 세부 사항이 저장된다.
ubuntu@ubuntu8:~$ sudo losetup -d /dev/loop12
ubuntu@ubuntu8:~$ fdisk -l sdimage_wcm.img
Disk sdimage_wcm.img: 29.74 GiB, 31914983424 bytes, 62333952 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: 0x921b283c
Device Boot Start End Sectors Size Id Type
sdimage_wcm.img1 8192 1056767 1048576 512M c W95 FAT32 (LBA)
sdimage_wcm.img2 1056768 13836287 12779520 6.1G 83 Linux
7GB 줄어든 걸 확인 할 수 있음. 하지만 파일 사이즈는 아직 32GB를 먹고 있음.
그래서 파일 사이즈까지 7GB로 줄여줘야 되는데, 잘못하면 파일 다 날라가니까 조심해야함!!!!
제가 그랬어요...아찔하네요..
(sdimage_wcm.img2의 End 주소 +1 )*512 까지 해줘야 됨니다.. sdimage_wcm.img1은 그 앞에 이미 있는거기 때문에 img2의 끝주소를 입력해주면 자동으로 포함됩니다.
저처럼 start로 하면 처음부터 다시해야됨미다...
ubuntu@ubuntu8:~$ truncate --size=$[(1056768+1)*512] sdimage_wcm.img
ubuntu@ubuntu8:~$ ls -l
total 528472
drwxrwxr-x 3 ubuntu ubuntu 4096 2월 2 15:58 linuxC
-rwxrwxr-x 1 ubuntu ubuntu 16696 1월 31 15:27 main
-rw-rw-r-- 1 ubuntu ubuntu 18 2월 2 11:46 main.c
-rwxrwxr-x 1 ubuntu ubuntu 16696 1월 31 15:34 pi@10.10.15.158
-rw-r--r-- 1 ubuntu ubuntu 541065728 2월 2 15:59 sdimage_wcm.img
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 공개
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 다운로드
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 문서
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 바탕화면
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 비디오
drwxr-xr-x 2 ubuntu ubuntu 4096 2월 2 15:53 사진
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 음악
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 템플릿
자 다시해줍니다.. 이번엔 끝 주소 확인하고 다시 갑니다..!
ubuntu@ubuntu8:~$ truncate --size=$[(13836287+1)*512] sdimage_wcm.img
ubuntu@ubuntu8:~$ ls -l
total 528472
drwxrwxr-x 3 ubuntu ubuntu 4096 2월 2 15:58 linuxC
-rwxrwxr-x 1 ubuntu ubuntu 16696 1월 31 15:27 main
-rw-rw-r-- 1 ubuntu ubuntu 18 2월 2 11:46 main.c
-rwxrwxr-x 1 ubuntu ubuntu 16696 1월 31 15:34 pi@10.10.15.158
-rw-r--r-- 1 ubuntu ubuntu 541065728 2월 2 15:59 sdimage_wcm.img
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 공개
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 다운로드
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 문서
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 바탕화면
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 비디오
drwxr-xr-x 2 ubuntu ubuntu 4096 2월 2 15:53 사진
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 음악
drwxr-xr-x 2 ubuntu ubuntu 4096 1월 30 16:41 템플릿
복사된 이미지는 라즈베리파이에서 줄어든 용량 밖에 사용을 못함.
sudo raspi-config
여기서 Advanced Options -> A1 Expand Filesystem 을 선택하여 전체 sd카드 용량을 사용하도록 전택한다.
설정을 적용하여 Finish 후 재부팅하면 된다.
재부팅 후 df -h 를 실행하면 32G 용량으로 변경된 것을 확인할 수 있다.
https://kyubot.tistory.com/132
'RaspberryPi' 카테고리의 다른 글
[RaspberryPi Kernel] Ubuntu에서 Raspberry Pi Kernel system call 함수 구현 (0) | 2024.02.15 |
---|---|
[RaspberryPi4 Kernel] Ubuntu에서 BCM2711 커널 빌드해서 올리기 (0) | 2024.02.15 |
[Raspberry Pi] PC와 USB로 SERIAL 연결하기 (0) | 2024.02.02 |
[Raspberry Pi] tag 사용해보기 (0) | 2024.02.01 |
[Raspberry Pi] Raspberry Pi 4B wiring pi를 통한 GPIO 제어 (0) | 2024.02.01 |