ฉันจะรู้ได้อย่างไรว่าพาร์ติชันเป็น ext2, ext3 หรือ ext4?


121

ฉันเพิ่งฟอร์แมตสิ่งต่าง ๆ หนึ่งดิสก์ที่ฉันฟอร์แมตเป็น ext2 ส่วนอีกอันฉันต้องการฟอร์แมตเป็น ext4 ฉันต้องการทดสอบว่าพวกเขาทำงานได้อย่างไร

ตอนนี้ฉันจะรู้ชนิดของระบบไฟล์ในพาร์ติชั่นได้อย่างไร?


2
จากความอยากรู้คุณพยายามทดสอบอะไร วารสารเทียบกับวารสารไม่? สำหรับบันทึกคุณสามารถใช้งาน ext4 ในโหมดไม่บันทึกประจำวันและยังคงได้รับประโยชน์จากคุณสมบัติใหม่อื่น ๆ ทั้งหมด
zacharyalexstern

คำตอบ:


114

ฉันจะบอกข้อมูลประเภทใด (รูปแบบข้อมูล) ในไฟล์ได้อย่างไร
→ใช้fileยูทิลิตี้

ที่นี่คุณต้องการทราบรูปแบบของข้อมูลในไฟล์อุปกรณ์ดังนั้นคุณต้องผ่านการ-sตั้งค่าสถานะเพื่อบอกfileไม่เพียง แต่จะบอกว่ามันเป็นไฟล์อุปกรณ์ แต่ดูเนื้อหา บางครั้งคุณจะต้อง-Lตั้งค่าสถานะเช่นกันหากชื่อไฟล์อุปกรณ์เป็นลิงก์สัญลักษณ์ คุณจะเห็นผลลัพธ์เช่นนี้:

# file -sL /dev/sd*
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=63fa0104-4aab-4dc8-a50d-e2c1bf0fb188 (extents) (large files) (huge files)
/dev/sdb1: Linux rev 1.0 ext2 filesystem data, UUID=b3c82023-78e1-4ad4-b6e0-62355b272166
/dev/sdb2: Linux/i386 swap file (new style), version 1 (4K pages), size 4194303 pages, no label, UUID=3f64308c-19db-4da5-a9a0-db4d7defb80f

เมื่อรับตัวอย่างนี้ดิสก์แรกจะมีหนึ่งพาร์ติชันและดิสก์ที่สองมีสองพาร์ติชัน /dev/sda1เป็นระบบไฟล์ ext4 /dev/sdb1เป็นระบบไฟล์ ext2 และ/dev/sdb2เป็นพื้นที่สว็อป (ประมาณ 4GB)

คุณต้องรันคำสั่งนี้เป็นรูทเนื่องจากผู้ใช้ทั่วไปอาจไม่สามารถอ่านพาร์ติชั่นดิสก์ได้โดยตรง: หากจำเป็นให้เพิ่มsudoไว้ด้านหน้า


1
เมื่อเข้า$ sudo file /dev/sda1ฉันจะได้รับ/dev/sda1: block special
heinrich5991

2
@ heinrich5991“ คุณต้องผ่านการตั้งค่าสถานะ -s …” ผมแสดงคำสั่งfile -s /dev/sd*- มีในด้านหน้าที่sudo sudo file -s /dev/sd*
Gilles

ขอโทษที่ฉันมองข้ามไป :(
heinrich5991

2
ใช้งานไม่ได้กับสิ่งที่ LVM: แยก -l ดูเหมือนว่าจะทำงานได้ดีขึ้น
TiloBunt

1
@TiloBunt ตรวจสอบว่าfile -sL /dev/mapper/foo-barมีการ-Lตั้งค่าสถานะเพื่อยกเลิกการเชื่อมโยงsymlink
Gilles

65

ตัวเลือกอื่นคือการใช้blkid:

$ blkid /dev/sda1
/dev/sda1: UUID="625fa1fa-2785-4abc-a15a-bfcc498139d1" TYPE="ext2"

สิ่งนี้จะจดจำประเภทของระบบไฟล์ส่วนใหญ่และสิ่งต่าง ๆ เช่นพาร์ติชันที่เข้ารหัส

คุณยังสามารถค้นหาพาร์ติชันด้วยประเภทที่กำหนด:

# blkid -t TYPE=ext2
/dev/sda1: UUID="625fa1fa-2785-4abc-a15a-bfcc498139d1" TYPE="ext2" 
/dev/sdb1: UUID="b80153f4-92a1-473f-b7f6-80e601ae21ac" TYPE="ext2"

7
1: ผมได้ยืนยันว่าเรื่องนี้จะช่วยให้ผลที่ถูกต้องเมื่อยึดระบบแฟ้มด้วยext2 ไม่หลงกลโดยที่ mount -t ext4blkid
Warren Young

สำหรับสิ่งที่คุ้มค่านี่ก็ดูเหมือนว่าจะทำงานได้กับไดรฟ์ xfs แต่ดูเหมือนblkidจะไม่ดีเท่าlsblkที่ตรวจจับไดรฟ์ที่ไม่ได้ต่อเชื่อม (ถ้าคุณต้องการ)
Jose Diaz-Gonzalez

ขอบคุณ! คำสั่งไฟล์ไม่ทำงาน แต่สิ่งนี้ทำให้ฉันในสิ่งที่ฉันต้องการ
Brain2000

ฉันต้อง sudo blkid / dev / sda1 อื่นฉันได้รับผลลัพธ์ที่ว่างเปล่า
jokab

41

คุณสามารถใช้ได้ sudo parted -l

[shredder12]$ sudo parted -l

Model: ATA WDC WD1600BEVT-7 (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  8587MB  8587MB  primary   ext3            boot
 4      8587MB  40.0GB  31.4GB  primary   ext4
 2      40.0GB  55.0GB  15.0GB  primary   ext4
 3      55.0GB  160GB   105GB   extended
 5      55.0GB  158GB   103GB   logical   ext4
 6      158GB   160GB   1999MB  logical   linux-swap(v1)

แหล่ง


1
ไม่ได้ติดตั้งแยก ยังไดรฟ์ยังไม่ได้ติดตั้ง
user4951

1
@JimThio ฉันคิดว่าคุณสามารถติดตั้งได้หรือไม่ คุณควรจะสามารถทำได้โดยเพียงแค่ทำsudo apt-get install parted(หรือgparted) ถ้าคุณอยู่ใน Ubuntu หรืออนุพันธ์ debian อื่น ๆ
Karthik T

2
1: ผมได้ยืนยันว่าเรื่องนี้จะช่วยให้ผลที่ถูกต้องเมื่อยึดระบบแฟ้มด้วยext2 ไม่หลงกลโดยที่ mount -t ext4parted
Warren Young

ในขณะที่นี่ไม่ใช่คำตอบ upvoted ที่สุดนี่คือคำตอบที่ฉันใช้จริง นอกจากนี้ฉันไม่จำเป็นต้องระบุอุปกรณ์
user4951

เพราะมันไม่ได้เป็นคำตอบที่ดีที่สุด: พาร์ทิชันอาจจะมีด้วงระบุว่าเป็น ext2 และมีระบบแฟ้ม ext4 (แล้วจะได้รับการติดตั้งเป็น ext4 ด้วยmount -t auto)
Basile Starynkevitch

15

อีกวิธีหนึ่งเนื่องจากคุณรู้ว่าคุณกำลังใช้งานรสชาติอยู่บ้างext?คือดูรายการคุณสมบัติของระบบไฟล์:

# tune2fs -l /dev/sda1 | grep features

หากอยู่ในรายการคุณจะเห็น:

  • extent - มันคือ ext4
  • ไม่extentแต่has_journal- มันคือ ext3
  • ไม่ใช่extentหรือhas_journal- มันเป็น ext2

partedและblkidคำตอบที่ดีกว่าถ้าคุณต้องการการวิเคราะห์พฤติกรรมเหล่านี้ทำงานให้คุณโดยอัตโนมัติ (พวกเขาบอกความแตกต่างด้วยการตรวจสอบคุณสมบัติเช่นกัน) พวกเขายังสามารถระบุext?ระบบไฟล์ที่ไม่ใช่

วิธีนี้มีประโยชน์ในการแสดงให้คุณเห็นถึงความแตกต่างในระดับต่ำ

สิ่งสำคัญที่ต้องตระหนักในที่นี้คือระบบไฟล์ทั้งสามนี้สามารถใช้งานร่วมกันได้และมีความเข้ากันได้แบบย้อนหลังด้วยเช่นกัน รุ่นที่ใหม่กว่าเพียงแค่เพิ่มฟีเจอร์ที่อยู่ด้านบนของอันที่เก่ากว่า

ดูext4 HOWTOสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้


10

ลองใช้df -Tsee man dfเพื่อดูตัวเลือกเพิ่มเติมอีกวิธีหนึ่งที่ฉันพบคือcfdisk


2
นี่เป็นจุดอ่อนเดียวกันกับmountคำตอบพื้นฐานของ h3rmiller
Warren Young

3
h3rrmiller ลบออกคำตอบของเขาดังนั้นสำหรับผู้ที่ไม่ได้มีตัวแทนที่จะเห็นมันตอนนี้ปัญหาคือว่าถ้าคุณบอกว่าmount -t ext4ในext2ระบบแฟ้มรายงานdf -T ext4นั่นคือมันแค่อ่านสิ่งที่ตารางเมาต์พูดไม่ใช่มองเมตาดาต้าระบบไฟล์เพื่อหาสิ่งนี้
Warren Young

@Warren: นั่นเป็นเพราะมันเป็นระบบไฟล์ ext4 ในกรณีนั้น เพียงหนึ่งเดียวที่มีคุณสมบัติไม่มาก
mattdm

@mattdm: ดังนั้นเมื่อคุณ unmount มัน ... มันยังคงเป็นระบบไฟล์ ext4 หรือไม่?
Warren Young

@Warren: ในแง่หนึ่งระบบไฟล์ ext2 ทั้งหมดก็เป็นระบบไฟล์ ext4 เช่นกัน (แต่แน่นอนว่าไม่ใช่ในความหมายที่คนส่วนใหญ่หมายถึง)
mattdm

10

ประหลาดใจที่นี่ไม่ได้อยู่ที่นี่แล้ว ไม่sudoต้องการ:

lsblk -f


2
ถ้าผมทำงานนี้ได้โดยไม่ต้องคอลัมน์ว่างเปล่า sudoFSTYPE
Flup

@Flup ฉันแค่ลองเองอีกครั้งและมันทำงานได้อย่างสมบูรณ์แบบโดยไม่ต้อง sudo คอลัมน์ FSTYPE มีประชากรเต็มแล้ว อาจมีความแตกต่างระหว่างระบบของเราหรือไม่
Freedom_Ben

@Flup - คุณต้องใช้ Debian / Ubuntu หรืออนุพันธ์ ... พวกเขามีชื่อเสียงในการทำบางสิ่งบางอย่าง (หรืออาจจะไม่ทำอะไรเลยฉันไม่รู้) และผลลัพธ์สุดท้ายคือคุณต้องการสิทธิ์รูทเพื่อแสดงรายการlsblkคอลัมน์บางส่วน.. .
don_crissti

4

ใช้ตัวเลือก -T เพื่อพิมพ์ประเภทระบบไฟล์

[root@centos6 ~]# df -T

Filesystem           Type  1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                     ext4    6795192 6367072     76276  99% /
tmpfs                tmpfs    639164       0    639164   0% /dev/shm
/dev/sda1            ext4     487652   28684    433368   7% /boot

2

fdisk -l จะแสดงรายการ

การใช้งาน:

 fdisk [options] -l <disk> list partition table(s)
 fdisk -s <partition>      give partition size(s) in blocks
 fdisk [options] <disk>    change partition table

2
ในระบบอะไร fdiskในระบบที่ฉันใช้อยู่อย่างน้อยตอนนี้จะแสดงเฉพาะประเภทพาร์ติชันไม่ใช่ประเภทระบบไฟล์ นั่นหมายความว่าไม่เพียง แต่มันไม่สามารถบอกความแตกต่างระหว่างext2, ext3และext4ก็ยังไม่สามารถมองเห็นหรือ ReiserFS XFS จากนี้
Warren Young

+1 สำหรับความพยายาม ฉันทำ fdisk ก่อนถามคำถามนี้ ให้คะแนน
4951

1

นี่เป็นประโยชน์สำหรับผู้ที่จะได้รับเพียงประเภทของระบบไฟล์:

blkid -o export <partition-device> | grep '^TYPE' | cut -d"=" -f2

ตัวอย่างการรันคือ:

# blkid -o export /dev/sda1 | grep '^TYPE' | cut -d"=" -f2
vfat
# blkid -o export /dev/sda2 | grep '^TYPE' | cut -d"=" -f2
ext4

0

นี่ไม่แสดงคำตอบ BSD ที่ฉันต้องการ ฉันรู้สึกว่าไบต์เหล่านี้มีอยู่จริงในตารางพาร์ติชันบนดิสก์ไม่แน่ใจเกี่ยวกับเรื่องนั้น มีเพียง 85 ชนิดสำหรับส่วนขยาย Linux ทั้งหมด แต่ Linux ไม่รู้จักประเภท A6 ของ OpenBSD เลย

> 00 ไม่ได้ใช้ 20 Willowsoft 66 NetWare 386 A9 NetBSD
> 01 DOS FAT-12 24 NEC DOS 67 Novell AB บูต MacOS X
> 02 XENIX / 27 Win Recovery 68 Novell AF MacOS X HFS +
> 03 XENIX / usr 38 Theos 69 Novell B7 ไฟล์ BSDI *
> 04 DOS FAT-16 39 Plan 9 70 DiskSecure B8 BSDI swap
> 05 Extended DOS 40 VENIX 286 75 PCIX BF Solaris
> 06 DOS> 32MB 41 Lin / Minux DR 80 Minix (เก่า) C0 CTOS
> 07 NTFS 42 LinuxSwap DR 81 Minix (ใหม่) C1 DRDOSs FAT12
> 08 AIX fs 43 Linux DR 82 Linux swap C4 DRDOSs 09 AIX / Coherent 4D QNX 4.2 ไฟล์ 83 Prius Linux * C6 DRDOSs> = 32M
> 0A OS / 2 Bootmgr 4E QNX 4.2 Sec 84 OS / 2 ซ่อน C7 HPFS Cbb Disbled
> 0B Win95 FAT-32 4F QNX 4.2 Ter 85 Linux ส่วนต่อขยาย DB CPM / C.DOS / C *
> 0C Win95 FAT32L 50 DM 86 NT FAT VS DE Dell Maint
> 0E DOS FAT-16 51 DM 87 NTFS VS E1 SpeedStor
> 0F Extended LBA 52 CP / M หรือ SysV 8E Linux LVM E3 SpeedStor
> 10 OPUS 53 DM 93 Amoeba FS E4 SpeedStor
> 11 OS / 2 ซ่อน 54 Ontrack 94 Amoeba BBT EB BeOS / i386
> 12 Compaq Diag 55 EZ-Drive 99 Mylex EE EFI GPT
> 14 OS / 2 ซ่อน 56 Golden Bow 9F BSDI EF EFI Sys
> 16 OS / 2 Hidden 5C Priam A0 NotebookSave F1 SpeedStor
> 17 OS / 2 ซ่อน 61 SpeedStor A5 FreeBSD F2 DOS 3.3+ วินาที
> 18 AST swap 63 ISC, HURD, * A6 OpenBSD F4 SpeedStor
> 19 Willowtech 64 NetWare 2.xx A7 NEXTSTEP FF Xenix BBT   
> 1C ThinkPad Rec 65 NetWare 3.xx A8 ​​MacOS X     

การจัดรูปแบบอาจทำให้ยุ่งเหยิงมันเป็นตารางที่ดี 70 คอลัมน์ หากคุณอยู่ใน fdisk ของ OpenBSD และคุณกดปุ่ม? เมื่อถามถึงประเภทพาร์ติชันนี่คือสิ่งที่คุณได้รับ ประเภทจะแสดงเมื่อคุณแก้ไขหรือแสดงรายการตารางพาร์ติชัน

ประเภทพาร์ติชันบน Wikipedia: https://en.wikipedia.org/wiki/Partition_type

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.