Ubuntu 라이브 USB를 만들었습니다.
$ dd if=/path/to/ubuntu.iso of=/dev/sdb
배포판을 설치했습니다. 이제 USB를 다시 일반 저장소 사용으로 전환하고 싶습니다.
$ lsblk
sdb 8:16 1 15G 0 disk
├─sdb1 8:17 1 1,4G 0 part # Ubuntu is here
└─sdb2 8:18 1 2,3M 0 part # Extra space I guess
$ sudo gdisk /dev/sdb
> p # list patitions
Command (? for help): p
Disk /dev/sdb: 0 sectors, 0 bytes
Logical sector size: 512 bytes
Disk identifier (GUID): A9CA0E15-8539-47B8-9BD1-4942D18E789B
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 18446744073709551582
Partitions will be aligned on 2048-sector boundaries
Total free space is 0 sectors (0 bytes)
Number Start (sector) End (sector) Size Code Name
보시다시피 나열된 파티션이 없으며 디스크가 비어 있는 것으로 나타납니다.
그래도 나는 새로운 것을 만들어 보았습니다.
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-18446744073709551582, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-18446744073709551582, default = 18446744073709551582) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
그런 다음 변경 사항을 작성합니다.
Command (? for help): w
Caution! Secondary header was placed beyond the disk's limits! Moving the
header, but other problems may occur!
Warning! The claimed last usable sector is incorrect! Do you want to correct
this problem? (Y/N): Y
Have adjusted the second header and last usable sector value.
Problem: partition 1 is too big for the disk.
Aborting write operation!
Aborting write of new partition table.
그래서 작동하지 않습니다. 내가 뭘 잘못했나요? 현재 그의 USB Sick은 여전히 Live USB로 사용될 수 있습니다.
편집 1
좋습니다. 답변을 받기 전에 각 파티션을 포맷해 보았습니다.
$ sudo mkfs.ext4 /dev/sdb1
$ sudo mkfs.ext4 /dev/sdb2
그런 다음 파티션 ID를 확인했습니다.
$ blkid /dev/sdb*
/dev/sdb1: UUID="eea83bc3-408b-4287-8c35-0cceeee837bb" TYPE="ext4"
/dev/sdb2: UUID="1138f1f8-0840-44fe-bb89-935993ed83af" TYPE="ext4"
다음을 사용해 보세요 fdisk
:
$ sudo fdisk /dev/sdb
fdisk: unable to read /dev/sdb: Invalid argument
그런 다음 Alex Stragies
제안된 대로 파일 서명을 제거했습니다.
$ dd if=/dev/zero of=/dev/sdb count=4 bs=1M
fdisk
이번에는 효과가 있었습니다:
$ sudo fdisk /dev/sdb
나는 새로운 것을 만듭니다 msdos
partition table
:
> o
Building a new DOS disklabel with disk identifier 0xb4151e51.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
You must set cylinders.
You can do this from the extra functions menu.
변경 사항을 저장하고 종료합니다 fdisk
.
> w
The partition table has been altered!
Syncing disks.
이제 파티션을 확인하면 fdisk
내 장치가 16GB가 아닌 약 4MB라고 표시됩니다! 내 USB 플래시 드라이브는 약 16GB여야 합니다.
$ sudo fdisk /dev/sdb
> p
Disk /dev/sdb: 4 MB, 4194304 bytes
131 heads, 2 sectors/track, 31 cylinders, total 8192 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
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 8191 4095+ ee GPT
gdisk를 사용하세요:
$ sudo gdisk /dev/sdb
> p
Disk /dev/sdb: 8192 sectors, 4.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): 5A262CEA-114A-4DF7-B2D3-99634D40398A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 8158
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 8158 3.0 MiB 8300 Linux filesystem
이를 사용하면 lsblk
장치의 용량이 15GB이고 두 개의 볼륨, 즉 1,4G 및 2,3M이 있음을 알 수 있습니다.
$ lsblck
sdb 8:16 1 15G 0 disk
├─sdb1 8:17 1 1,4G 0 part
└─sdb2 8:18 1 2,3M 0 part
무슨 일이야? 난 여기서 완전히 길을 잃었어
편집 2
나는 dd
count 와 fdisk
. count=2000을 사용하여 dd
2GB를 복사할 수 있습니다.
$ dd if=/dev/zero of=/dev/sdb count=2000 bs=1M
하지만 그게 다야. 을 지정하면 count=3000
2GB만 복사됩니다.
명확히 하자면, 저는 3년 전에 이 문제를 겪었고 이전 USB 스틱이 문제가 있을 수 있다는 말을 듣고 포기했습니다. Ubuntu 라이브 USB 스틱으로도 사용한 다음 포맷했는데 손상되었기 때문에 찾을 수 없었습니다. 이제 같은 상황에서 우분투에서도 이런 일이 일어나고 있습니다. 이전에 여러 번 Arch Linux USB 스틱으로 사용했지만 다시 포맷해도 실패한 적이 없습니다. 사용자가 라이브 USB 스틱 만들기(Ubuntu 사용)와 관련된 동일한 문제를 설명하는 다른 스레드를 인터넷에서 찾았습니다. 하지만 아직 명확한 해결책을 찾지 못했습니다. 다시 포맷하거나 할당되지 않은 공간을 위한 새 파티션을 생성하는 등의 제안을 하는 사람들을 읽은 적이 있습니다. 분명 누군가는 이미 이 문제를 겪고 방탄 해결책을 찾았겠죠? 아니면 USB 스틱이 영구적으로 분실된 것인가요?
답변1
fdisk는 iso9660 파일 시스템을 보고 있기 때문에 장치를 열지 못할 수 있습니다.
이것은 확인할 수 있습니다 blkid /dev/sdb*
.
어쨌든, 나는 이것을 시도해 볼 수 있습니다:
dd if=/dev/zero of=/dev/sdb count=4 bs=1M
이렇게 하면 처음부터 모든 파일 시스템 서명이 제거됩니다.fdisk /dev/sdb
다시 시도하십시오작업 시작
o
(새 MS-DOS 파티션 테이블 생성)그런 다음 파티션을 추가하고 키를 누른
n
다음p
Enter 키를 몇 번 눌러 최대 크기를 선택합니다. (그렇지 않으면 fdisk가 작은 가상 파티션을 생성합니다)t
필요한 경우 파티션 유형 변경을 사용하세요.
설치가 블록 장치 변경 사항을 안정적으로 감지하고 이를 위해 커널 맵을 새로 고칠 수 있는지 확인해야 합니다. 확실하지 않은 경우 및 partprobe
사이에 힘을 가하세요 .dd
fdisk
답변2
다음 명령을 사용하여 USB 플래시 드라이브의 파티션을 지울 수 있습니다(다음 명령을 모두 루트로 실행).
dd if=/dev/zero of=/dev/sdb bs=1M count=1000
sync
이렇게 하면 처음부터 1GB의 0이 기록되므로 sdb
모든 파티션 정보가 확실히 지워집니다.
그런 다음 fdisk를 사용하여 단일 파티션을 만듭니다.
fdisk /dev/sdb
n
p
<enter> three times
w
partprobe
sync
lsblk
그런 다음 파티션을 확인 하고 mkfs.ext4 /dev/sdb1
.