Tự động gắn tất cả các phân vùng trên đĩa cứng trên Linux Mint


14

Vấn đề
Tôi có cài đặt Linux Mint. Mỗi lần khởi động, tôi cần tự gắn hai phân vùng trên máy tính của mình ( New volume DDrive C). Nếu tôi không làm điều này, những ổ đĩa này sẽ không xuất hiện ở bất cứ đâu. Tôi muốn biết nếu có một số cách để tự động hóa quá trình này.

Mục tiêu
Tự động gắn tất cả các phân vùng trên đĩa cứng mỗi khi tôi khởi động.

Thông số kỹ thuật
khởi động kép Linux Mint 14 với Windows XP SP3



Như đã thảo luận trong câu trả lời trước được chấp nhận, tệp / etc / fstab sẽ giúp bạn thực hiện điều đó. Vui lòng xem genfstab , như được đề xuất, sử dụng blkid để tạo một cái tự động.
Rany Albeg Wein

Câu trả lời:


15

Bạn có thể làm điều này thông qua các tập tin /etc/fstab. Hãy xem liên kết này . Hướng dẫn này cũng có chi tiết tốt.

Các bước ví dụ

Trước tiên, bạn cần tìm ra UUID của các ổ đĩa cứng. Bạn có thể sử dụng lệnh blkidcho việc này. Ví dụ:

% sudo blkid
/dev/sda1: TYPE="ntfs" UUID="A0F0582EF0580CC2"
/dev/sda2: UUID="8c2da865-13f4-47a2-9c92-2f31738469e8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: TYPE="swap" UUID="5641913f-9bcc-4d8a-8bcb-ddfc3159e70f"
/dev/sda5: UUID="FAB008D6B0089AF1" TYPE="ntfs"
/dev/sdb1: UUID="32c61b65-f2f8-4041-a5d5-3d5ef4182723" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb2: UUID="41c22818-fbad-4da6-8196-c816df0b7aa8" SEC_TYPE="ext2" TYPE="ext3" 

Đầu ra từ blkidlệnh trên có thể được sử dụng để xác định ổ cứng khi thêm các mục vào /etc/fstab.

Tiếp theo bạn cần chỉnh sửa /etc/fstabtập tin. Các dòng trong tệp này được tổ chức như sau:

UUID={YOUR-UID}    {/path/to/mount/point}               {file-system-type}    defaults,errors=remount-ro 0       1

Bây giờ chỉnh sửa tập tin:

% sudo vi /etc/fstab

Và thêm một tập tin như thế này, ví dụ:

UUID=41c22818-fbad-4da6-8196-c816df0b7aa8  /disk2p2      ext3    defaults,errors=remount-ro 0       1

Lưu tệp và sau đó xử lý lại tệp bằng mount -alệnh.

Phân vùng Windows

Để gắn kết phân vùng ntfs, bạn sẽ cần phải làm một cái gì đó như thế này trong /etc/fstabtệp của mình :

/dev/sda2   /mnt/excess ntfs-3g    permissions,locale=en_US.utf8    0   2

hai phân vùng /dev/sda5dev/sda6không được liệt kê trong fstabtệp và trong blkidlệnh. tại sao?
IcyFlame

Được chứ. Tôi hiểu rồi. đó là bởi vì nó là một phân vùng cửa sổ có trong / media
IcyFlame

Các phân vùng Windows bạn sẽ cần sử dụng dev / sda * để gắn kết chúng, bạn cũng sẽ cần chỉ định ntfs-3g cho loại hệ thống tệp mà tôi tin.
slm

14

Bạn có thể làm điều này bằng cách đơn giản nhất. Đi đến:

  • Menu -> Đĩa (ứng dụng)
  • Chọn âm lượng bạn muốn gắn kết và nhấp vào tùy chọn của nó
  • Chọn "Chỉnh sửa tùy chọn gắn kết" -> Và đảm bảo bạn chọn "Gắn kết khi khởi động" trong ổ đĩa.

Đôi khi gui có ý nghĩa hoặc nó dễ dàng để làm những điều này.
Ramsharan

Ôi, Holly S ***, hay đấy !!!
felipsmartins

Giải pháp Wysiwyg, tốt hơn cho người mới bắt đầu.
Sandburg

1

Nếu bạn có nhiều phân vùng được gắn kết, có thể bạn cần một tập lệnh như tôi đã làm.


# ! python
# mount all partition by neoedmund
from subprocess import Popen
from subprocess import PIPE

def getCol(col, line):
    p1 = line.find(col)
    if p1<0 : return ""
    p2 = p1 + len(col) + 1
    p3 = line.find('"',p2+1)
    return line[p2+1:p3]

data_stream = Popen(["/bin/lsblk", "-P", "-o", "FSTYPE,UUID,MOUNTPOINT,KNAME"], stdout=PIPE)
data=[]
for line in data_stream.stdout:
    fstype = getCol("FSTYPE", line)
    if fstype=="": continue # no fs
    mountpoint = getCol("MOUNTPOINT", line)
    if mountpoint!="":continue  # already mounted   
    uuid = getCol("UUID", line)
    kname = getCol("KNAME", line)
    data.append((kname, uuid))

print("### mount script ###")
for (kname,uuid) in data:
    print("mkdir /media/%s-%s"%(kname, uuid))
    print("mount /dev/%s /media/%s-%s" %(kname, kname, uuid))

print("### umount script ###")
for (kname,uuid) in data:
    print("umount /dev/%s" %(kname))




Nó là một kịch bản python, phụ thuộc vào "/ bin / lsblk", lưu kết quả đầu ra vào hai tập lệnh shell cho mount và umount.


0
for i in $(lsblk -r |awk '{ print $1 }'|grep -v md |grep -v loop |grep .*[[:digit:]]|sort|uniq;); 
do
    if [ -z  "$(grep  $i /proc/mounts)" ]
    then  
        mkdir /mnt/$i;
        mount /dev/$i /mnt/$i
    fi
done

2
Sẽ rất hữu ích nếu bạn có thể giải thích chính xác lệnh của bạn làm gì.
dhag

Đặt một chuỗi lớn các lệnh và cấu trúc điều khiển trên cùng một dòng không thực sự làm cho mã của bạn trở thành một lớp lót . Nó chỉ khiến cho việc hiểu nó trở nên khó khăn hơn ...
John WH Smith

0

Sao lưu của fstab hiện tại:

#cp -a /etc/fstab /etc/fstab.bk

xử lý đầu ra của lsblk -f bằng cách sử dụng sedawk và chuyển hướng đầu ra sang fstab:

#lsblk -f|sed 's/\[SWAP]/swap /g'|awk '/(-)/{printf"UUID=%-36s %-23s %-7s defaults 
           0 0\n", $3, ($4==""?mnt"NR:$4), $2}'>/etc/fstab

gắn kết các điểm gắn kết mới bằng cách gọi

#mount -a
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.