Bir paketi yükseltirken veya yeniden yüklediğinizde dpkg
(ve sonuçta apt-get vb. Gibi kullanan her şeyi kullanırsanız), değiştirmeden önce dosyaya sert bir bağlantı oluşturarak varolan dosyaları yedekler. Bu şekilde, açma işlemi başarısız olursa, mevcut dosyaları kolayca geri koyabilir. İşletim sistemini Bad Things ™ 'den koruduğundan, bu harika bir şey.
Bunun dışında ... yalnızca dosya sisteminiz sabit bağlantıları destekliyorsa çalışır . Tüm dosya sistemleri değil - örneğin FAT dosya sistemleri.
Belirli bir gömülü ARM platformu için Debian dağıtımı üzerinde çalışıyorum ve önyükleme ortamı, belirli dosyaların (çekirdek dahil) bir FAT dosya sistemi üzerinde olmasını gerektirir, bu nedenle önyükleme kodu onları bulabilir ve yükleyebilir.
Çekirdek paketini (veya bu FAT bölümünde dosyaları olan başka bir paketi) yükseltmeye gittiğinizde yükleme işlemi şu şekilde başarısız olur:
dpkg: error processing archive linux-image3.18.11+_3.18.11.2.armadillian_armhf.deb (--install):
unable to make backup link of `./boot/vmlinuz-3.18.11+' before installing new version: Operation not permitted
Ve tüm yükseltme başarısız olur.
Web’i araştırdım ve bulabildiğim tek referans belirli yanıtları olan ve belirli yanıtları olan ve genellikle "Delete /boot/vmlinuz-3.18.11+ ve tekrar dene" olan belirli sorunları olan belirli insanlar. bu sorunu düzeltir.
Ama bu benim için cevap değil. Ben bir işletim sistemi kullanıcısı değilim, bir işletim sistemi kullanıcısı değilim, bu yüzden bunu düzeltmek için, son kullanıcının bir yükseltme yapmadan önce çekirdek dosyalarını manuel olarak silmesini gerektirmeyen bir yola ihtiyacım var. Dpkg'a / boot (veya önyükleme işlemindeki dosyalar için "hard link değil kopyalamak") ya da daha iyi bir şekilde "güncelleme işlemi başarısız olursa, ancak önyükleme işlemini biraz yavaşlatacak olsa da" ya da umursamıyorum tüm dosyalar için söylemem için bir yola ihtiyacım var şikayet etmeyin, sadece kopyalayın ".
--force-unsafe-io
Ve hatta --force-all
bayrakları gibi şeyler denedim dpkg
ama hiçbir şeyin bir etkisi olmaz.