Bu muhtemelen güncellenmelidir, çünkü burada verilen bilgilerin çoğu yanıltıcıdır ve aslında hiçbir zaman kapsamlı bir şekilde doğru olmayabilir.
https://bootlin.com/blog/find-root-device/
/ Mount noktası için, aradığınız gerçek aygıt olmayan / dev / root'a karşılık geldiği söylenir.
Tabii ki, çekirdek komut satırına bakabilir ve hangi başlangıç kök dosya sistemi Linux'a önyükleme yapıldığını (root parametresi) görebilirsiniz:
$ cat / proc / cmdline mem = 512M konsol = ttyS2,115200n8 root = / dev / mmcblk0p2 rw rootwait
Ancak bu, gördüğünüz şeyin mevcut kök cihaz olduğu anlamına gelmez. Birçok Linux sistemi, sonuncusuna erişmek için kullanılan ara kök dosya sistemlerinde (initramdisks ve initramfs gibi) önyükleme yapar.
Bu noktaya dikkat çeken şeylerden biri, / proc / cmdline'daki şeyin, gerçekte canlı gerçek nihai aygıt kökü olmamasıdır.
Bu, önyükleme durumları söz konusu olduğunda nelerden bahsettiklerini bildiğim meşgul kutusu insanlarından.
https://www.linuxquestions.org/questions/slackware-14/slackware-current-dev-root-688189/page2.html
Bulduğum ikinci yararlı kaynak, / dev / root sorusu hakkında çok eski bir Slackware iş parçacığı, bu iş parçacığının yaşından itibaren, tüm varyantların her zaman mevcut olduğunu görebiliriz, ancak 'en' dağıtımların sembolik kullandığına inanıyorum bağlantı yöntemi, ancak bu basit bir çekirdek derleme anahtarıydı, posterleri doğru anladıysam, bir tane yapabilir ya da yapamazdım, yani, bir yöne geçin ve readlink / dev / root gerçek cihaz adını bildirir, değiştirir diğeri ve öyle değil.
Bu iş parçacığının ana konusu / dev / root'tan nasıl kurtulacağı olduğundan, aslında ne olduğuna, onu yapanlara vb. Girmek zorundaydılar, yani ondan kurtulmak için onu anlamak zorundaydılar.
gnashly iyi açıkladı:
/ dev / root, fstab içinde kullanılabilen genel bir aygıttır. Bir de 'rootfs' kullanılabilir. Bunu yapmak, daha az spesifik olmanıza izin vermesi açısından bazı avantajlar sunar. Demek istediğim, kök bölüm harici bir sürücüde ise, her zaman aynı cihaz olarak görünmeyebilir ve / veya başarılı bir şekilde monte edilebileceği için fstab'ın doğru cihaza uyacak şekilde değiştirilmesi gerekebilir. / Dev / root kullanıldığında, lilo veya grub'un çekirdek önyükleme parametrelerinde belirtilen aygıtla her zaman eşleşir.
/ dev / root, daha önce hiç görmeseniz bile, sanal bir bağlama noktası olarak her zaman mevcuttur. Yani rootfs var (bunu proc ve tmpfs gibi özel sanal cihazlarla karşılaştırın.
/ dev / root, 'proc' veya / dev / tcp 'gibi sanal bir cihazdır. Bu şeyler için / dev'de cihaz düğümü yok - zaten sanal bir cihaz olarak çekirdekte.
Bu, sembolik bir bağlantının neden gerekli olmadığını açıklar. Bu bilgiyi bilmem gereken bazı programları sürdürdüğüm için, ancak bu konuyu daha önce hiç vurmadığım için şaşırdım, ama hiç olmadığı kadar geç.
Burada sunulan çözümlerin bazılarının 'sık sık' işe yarayacağına ve muhtemelen yapacağım olduğuna inanıyorum, ancak meşgul kutusu yazarının belirttiği gibi, çok pratik bir şekilde uygulanması daha karmaşık olan soruna gerçek bir çözüm değiller. sağlam bir şekilde.
[UPDATE:} Bazı kullanıcı test verileri aldıktan sonra, en azından bazı durumlarda iyi görünen mount yöntemiyle gidiyorum. / Proc / cmdline çok fazla değişken olduğu için kullanışlı değildi. İlk örnekte eski yöntemi görüyorsunuz. Bu daha az yaygındır, çünkü kullanımı kesinlikle önerilmez (orijinal / dev / sdx [0-9] türü sözdizimi), çünkü bu yollar dinamik olarak değişebilir (disk sırasını değiştirin, yeni disk takın, vb. Ve aniden / dev / sda1, / dev / sdb1 olur).
root=/dev/sda1
root=UUID=5a25cf4a-9772-40cd-b527-62848d4bdfda
root=LABEL=random string
root=PARTUUID=a2079bfb-02
VS çok temiz ve ayrıştırılması kolay:
mount
/dev/sda1 on / type ext4 (rw,noatime,data=ordered)
Cmdline durumunda, teoride doğru 'cevap' olan tek varyant ilk, kullanımdan kaldırılmış olanıdır, çünkü / dev / sdxy gibi hareketli bir hedefe kök göndermemelisiniz.
Sonraki ikisi, / dev / disk / by-uuid veya / dev / disk / by-label içindeki o dizeden sembolik bağlantı almak için daha fazla işlem yapılmasını gerektirir.
Sonuncusu ben ayrıştırılmış kimliğin ne işaret ettiğini bulmak için parted -l kullanarak inanıyorum gerektirir.
Bu sadece bildiğim ve gördüğüm varyantlar, örneğin GPTID gibi başkaları da olabilir.
Yani kullandığım çözüm şudur:
önce / dev / root'un sembolik bir bağlantı olup olmadığına bakın. Öyleyse, / dev / disk / by-uuid veya by-label için olmadığını doğrulayın, eğer öyleyse, son gerçek yolu elde etmek için ikinci bir işlem adımı yapmanız gerekir. Kullandığınız araca bağlıdır.
Eğer bir şeyiniz yoksa, o zaman montaja gidin ve bunun nasıl olduğunu görün. Son bir geri dönüş vakası olarak kullanmıyorum, çünkü buna karşı verilen argümanlar söz konusu bölüm veya cihaz olması gerekmiyor bile, bu çözümü programım için reddetmem için yeterince iyi. mount tam olarak sağlam bir çözüm değil ve yeterince örnek verildiğinden eminim, hiç de doğru olmadığı durumlar bulmak kolay olurdu, ancak bu iki vakanın 'en' kullanıcıları kapsadığına inanıyorum, tüm ihtiyacım olan bu.
En güzel, en temiz ve en güvenilir çözüm, çekirdeğin her zaman, hiçbir şeye veya kimseye zarar vermeyecek ve iyi olarak adlandırmayacak olan sembolik bağlantıyı yapması olurdu, ancak gerçek dünyada böyle çalışmadı. .
Bunlardan hiçbirini 'iyi veya sağlam' çözümler olarak görmüyorum, ancak montaj seçeneği 'yeterince iyi' tatmin edici görünüyor ve gerçekten sağlam bir çözüm gerekiyorsa, meşgul kutusunun önerdiği şeyleri kullanın.