Score:0

sfdisk: สร้างพาร์ติชันจากด้านขวา

ธง it

ฉันต้องการสร้างพาร์ติชัน 2 ด้วยขนาดที่ระบุ ในขณะที่พาร์ติชัน 1 ครอบครองส่วนที่เหลือของดิสก์:

เสียงสะท้อน -en 'g\nw' | fdisk "$2" #สร้างตาราง gpt
เสียงสะท้อน -en ',1331200\n,,U' | sudo sfdisk "/dev/sda" -W เสมอ

คำสั่งสุดท้ายสร้างพาร์ติชันด้านซ้ายขนาด 650MB และพาร์ติชันด้านขวาใช้พื้นที่ส่วนที่เหลือของดิสก์ แต่อย่างที่ฉันระบุไว้แล้ว นี่ไม่ใช่สิ่งที่ฉันต้องการ ในการสร้างพาร์ติชันด้านขวาขนาด 650MB และพาร์ติชันด้านซ้ายใช้พื้นที่ส่วนที่เหลือของดิสก์ ฉันคิดว่าควรทำดังนี้:

เสียงสะท้อน -en ',-1331200\n,,U' | sudo sfdisk "/dev/sda" -W เสมอ

ด้วยความคิดที่ว่าค่าลบเริ่มต้นจากทางขวา แต่แทนที่จะเป็น - เครื่องหมายถูกละเว้นโดยสิ้นเชิง และคำสั่งมีผลเหมือนกับคำสั่งที่ไม่มีเครื่องหมาย - เข้าสู่ระบบ.

ฉันจะสร้างพาร์ติชันได้อย่างไรโดยเริ่มจากด้านขวาโดยใช้ เอสเอฟดิสก์?

waltinator avatar
it flag
คุณกำลังใช้งานแฟรกเมนต์นี้ในสภาพแวดล้อมแบบใด การประมวลผลข้อความของ `sfdisk --list` จะช่วยได้หรือไม่ ลองใช้ `expect` เพื่อทำให้การสนทนาของคุณกับ `sfdisk` เป็นไปโดยอัตโนมัติ อ่าน `มนุษย์คาดหวัง`
it flag
สภาพแวดล้อมแบบไหน?
Score:1
ธง jp

ฉันไม่เห็นอะไรใน เอสเอฟดิสก์ เอกสารที่แนะนำว่ารองรับค่าสัมพัทธ์ที่เป็นลบ การคำนวณตำแหน่งเริ่มต้นของพาร์ติชันจะทำงานได้หรือไม่

ฉันจะสาธิตการใช้ไฟล์วนรอบแบบกระจายที่จำลองดิสก์ขนาด 2GB

root@ubuntu:~# fallocate -l 2G filesystem.img
root@ubuntu:~# สูญเสีย -f filesystem.img
root@ubuntu:~# สูญเสีย -a | grep filesystem.img
/dev/loop6: [2049]:20 (/root/filesystem.img)

ตำแหน่งเริ่มต้นของพาร์ติชัน 650MB ของคุณสามารถพบได้โดยการลบ 650MB ออกจากส่วนท้ายของดิสก์ $(blockdev --getsize64 /dev/loop6) / 1024 กำหนดขนาดของดิสก์เป็น KiB 650 * 1024 คือ 650MiB ใน KiB นำมารวมกันเพื่อหาจำนวน KiB ที่จะใช้สำหรับพาร์ติชันแรก

root@ubuntu:~# echo $(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))
1431552

ค่านี้สามารถใช้ได้โดยตรงเมื่อสร้างพาร์ติชันด้วย เอสเอฟดิสก์

root@ubuntu:~# sfdisk /dev/loop6 <<EOF
> ป้ายกำกับ: gpt
>1431552KiB ,,,-
> ,,,-
> สพป
...
สถานการณ์ใหม่:
ประเภทป้ายชื่อดิสก์: gpt
ตัวระบุดิสก์: 77816CA7-8A39-974B-A78D-CFCB2A5D66EC

ประเภทขนาดเซกเตอร์สิ้นสุดการเริ่มต้นของอุปกรณ์
/dev/loop6p1 2863104 4194270 1331167 ระบบไฟล์ Linux 650M
/dev/loop6p2 2048 2863103 2861056 ระบบไฟล์ Linux 1.4G
...

คุณยังสามารถคำนวณมูลค่าได้ทันที

root@ubuntu:~# wipefs -a /dev/loop6
...
root@ubuntu:~# sfdisk /dev/loop6 <<EOF
> ป้ายกำกับ: gpt
> $(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))KiB,,,-
> ,,,-
> สพป
...
สถานการณ์ใหม่:
ประเภทป้ายชื่อดิสก์: gpt
ตัวระบุดิสก์: 661C7E48-3342-3842-81BE-1AF4CB51BC6E

ประเภทขนาดเซกเตอร์สิ้นสุดการเริ่มต้นของอุปกรณ์
/dev/loop6p1 2863104 4194270 1331167 ระบบไฟล์ Linux 650M
/dev/loop6p2 2048 2863103 2861056 ระบบไฟล์ Linux 1.4G
...

ตัวอย่างก่อนหน้านี้สร้างพาร์ติชัน 650MB ของคุณก่อน อาจทำให้สับสนเล็กน้อยเนื่องจากพาร์ติชันไม่ได้อยู่ในลำดับปกติ คุณสามารถสร้างพาร์ติชัน "ส่วนที่เหลือของดิสก์" ก่อนเพื่อหลีกเลี่ยงความสับสน

root@ubuntu:~# wipefs -a /dev/loop6
...
root@ubuntu:~# sfdisk /dev/loop6 <<EOF
> ป้ายกำกับ: gpt
> ,$(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))KiB ,,-
> ,,,-
> สพป
...
สถานการณ์ใหม่:
ประเภทป้ายชื่อดิสก์: gpt
ตัวระบุดิสก์: 3EF08C46-AF4F-1F48-B8AF-A65D67C438B7

ประเภทขนาดเซกเตอร์สิ้นสุดการเริ่มต้นของอุปกรณ์
/dev/loop6p1 2048 2865151 2863104 ระบบไฟล์ Linux 1.4G
/dev/loop6p2 2865152 4194270 1329119 ระบบไฟล์ Linux 649M
...
it flag
ขอบคุณคุณ ปัญหาของฉันได้รับการแก้ไขแล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา