Sürücüleri yeniden monte etmek için `/ etc / fstab` kullanılıyor mu?


9

Ext4 dosya sistemine sahip tek bir sabit sürücüye sahip Ubuntu 14.04.5 yüklü bir cihazım var.

Ext4 Dosya Sistemi belgesini okuyarak varsayılan veri modunun orderedyalnızca meta verileri koruduğunu öğrendim . journalProjemde, veri güvenliği daha yüksek değerde olduğu için dosya verilerini de korumak için bunu değiştirmek istiyoruz .

Denediğim ilk şey /etc/fstabdosyayı değiştirmekti . Değişmeye çalıştım

UUID=<UUID> / ext4 errors=remount-ro 0 1

için

UUID=<UUID> / ext4 errors=remount-ro,data=journal 0 1

data=journalseçenek alanına ekleyerek .

Ancak, cihazı yeniden başlattığımda bir hata mesajı aldım cannot change data mode on remount. Kontrol ettim dmesgve birlikte sürücü montaj hakkında daha önceki bir mesaj gördüm orderedveri modu.

Utanç verici uzun bir süre boyunca /etc/fstab, sürücülerin yalnızca bir kez monte edilmesi için varsayılan montaj seçeneklerini geçersiz kılmak için kullanıldığını düşündüm . Ancak şimdi yanlış görünüyor: sürücü varsayılan montaj seçenekleri kullanılarak monte edildi, daha sonra /etc/fstabyeniden monte etmek için kaldırıldı.

Sorularım :

  • Bu "takılma" süreci sistemin tasarımı mı? FstabWiki sayfasını okudum ama "mount-remount" şeyden bahsediyor görmedim.
  • Yeniden montaj için/etc/fstab gerçekten kullanılıyorsa , sürücü ilk kez önyükleme işleminin hangi adımında monte edilir? Uygulandı mı /etc/init.d? /etc/init.dAranan bazı komut dosyaları gördüm umountfsve umountrootiçeriklerini gözden kaçırmayın, alakalı görünmüyorlar.

2
Sanırım burada bahsedilen "tavuk ve yumurta" sorunu ( /etc/fstabkök dosya sisteminde bulunuyor, ancak dosya sistemi monte edildikten sonraya kadar okunamıyor): initramfs / etc / fstab kullanıyor mu?
steeldriver

Yanıtlar:


8

Gönderen man ext4:

data = {dergi | emretti | Writeback}
              Dosya verileri için günlük kaydı modunu belirtir. Meta veriler her zaman
              journaled. Kök dosyalarda sıralı olmayan modları kullanmak için‐
              tem, modu önyükleme parametresi olarak çekirdeğe iletir, örneğin root‐
              bayraklar = data = dergi.

data=orderedFstab satırınızdan kaldırın ve /etc/default/grubbunun yerine düzenleyin . In /etc/default/grubdeğişim çizgisi

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

için

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash root‐flags=data=journal"

çalıştırın sudo update-grubve yeniden başlatın.


5

/ Etc / fstab kullanıldığında

Eğer çalıştırırsanız sudo strace -e open,openat mount -o remount,rw /, komutun aslında açık olduğunu göreceksiniz /etc/fstab. Bu, kurtarma kabuğundan çalışma ile ilgili makalelerde sıklıkla göreceğiniz en yaygın komuttur.

Ayrıca sourcejedi'nin cevabını ( manuelden geliyor mount(8)) alıntılamak için :

mount -o yeniden montaj, rw / dir

Bu çağrıdan sonra, mount fstab'ı okur ve bu seçenekleri komut satırındaki seçeneklerle birleştirir (-o) . Fstab içinde bir bağlama noktası bulunmazsa, belirtilmemiş kaynağı olan bir yeniden birleştirmeye izin verilir.

Ancak bu /etc/fstabher zaman kullanıldığı anlamına gelmez . Özellikle, aygıt dosyasını da belirttiğinizde; mount(8)kılavuza referans :

Yeniden montaj işlevi, mount komutunun fstab seçenekleriyle nasıl çalıştığını standart şekilde izler. Bu, mount komutunun fstab (veya mtab) öğesini yalnızca bir aygıt ve dizin tam olarak belirtildiğinde okumadığı anlamına gelir.

mount -o yeniden montaj, rw / dev / foo / dir

Bu çağrıdan sonra, tüm eski bağlama seçenekleri değiştirilir ve mount komutu tarafından dahili olarak oluşturulan ve sürdürülen loop = seçeneği hariç, fstab öğesinden rastgele şeyler yoksayılır .

Bu, mantıklı /dirolabileceğinden , bir cihazı farklı bağlama noktasına yeniden monte etmek mantıklıdır .

/etc/fstabMontaj sırasında da başvurulan değildir /önyükleme süresi özüne dosya sistemi hakkında hiçbir şey bilmez /etc/fstab. Psusi'nin cevabını alıntılamak için :

Sonunda önyükleme yükleyicileri geldi ve çekirdeğe bir komut satırı iletebilir. Root = argümanı geçildiyse, bu, çekirdeğe yerleşik değerin yerine kök fs'nin nerede olduğunu söyler. Erişim için gerekli olan sürücüler hala çekirdeğe yerleştirilmişti

...

Son olarak, bugün initramlarımız var. Bu, initrd'e benzer, ancak ramdisk'e yüklenen sıkıştırılmış bir dosya sistemi görüntüsü olmak yerine, sıkıştırılmış bir cpio arşividir. Bir tmpfs kök olarak monte edilir ve arşiv orada çıkarılır. Kirli bir saldırı olarak kabul edilen pivot_root kullanmak yerine, initramfs önyükleme komut dosyaları gerçek kökü / root dizinine bağlar, tmpfs kök dizinindeki tüm dosyaları siler, sonra / root dizinine geçer ve exec / sbin / init

Fstab gerektirmeyen dosya sistemleri

Ayrıca, Linux çekirdeğinin bellekte bulunan başka dosya sistemlerine sahip olduğuna dikkat edin - bunlar normalde kullanıcılar tarafından kullanılamaz, bazıları ise herhangi bir bağlama noktasına sahip değildir, bazıları ise kullanıcılara açıktır. Çekirdek bunlar için referans vermek zorunda değildir /etc/fstab. Bunun bir örneği /proc- çoğunlukla süreçler hakkında bilgi içeren sanal bir dosya sistemi ve gerçekten olması gereken donanım ve sistem hakkında bazı şeyler ortaya koyan sanal bir dosya sistemi /sys- başka bir sanal dosya sistemi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.