Ubuntu'yu “güç kaybına dayanıklı” hale nasıl getirebilirim?

18

Her gün 'kiosk' kullanımı için katılımsız bir sistemi çalıştırmayı seviyorum.

Bununla birlikte, sistem daha önce düzgün bir kapatma yapmadan sistem her zaman kapatılabilir. Varsayılan olarak, Ubuntu'nun güç kaybıyla kapanması beklenmez. Bir güç kaybından sonra yeniden başlatıldıktan sonra, dosya sistemini kontrol etmek için fsck çalıştırılabilir ve fsck bittikten sonra sistemin yeniden başlatılmasını söyleyebilir. Bu nedenle, herhangi bir yapılandırma verisi bozulmazsa bile, güç kaybından sonra makine iyi çalışmayabilir. Bu yüzden bazı geçici çözümler test ettim:

  1. root mount fsck önceliğini 0 olarak değiştirin ( fstab root girdisinde son alan) Her güç kaybından sonra fsck çalışmasını engeller. Ancak, sistem root tarafından salt okunur halde önyüklenebilir, bu da pek çok hizmet tarafından beklenmiyor ve sonuç olarak bir grafik oturum açmada konsol giriş istemi ile sonuçlanıyor.

  2. errrors=remount-ro değerini errors=continue olarak değiştirin. Bu, tutarsız bir dosya sistemi tarafından daha fazla veri kaybının meydana gelebileceğine dair kötü bir fikir verir. Bununla birlikte, fsck 'sinin tekrar etkinleştirilmesiyle, güç kaybından sonra sistemin önyükleme kapasitesini artırması gerekir. Ben de 1) düştüm.

  3. Başarısız bir önyüklemeden sonra grub2'yi normal varsayılan seçenek zaman aşımını kullanmak üzere yeniden yapılandırın. Bunun için GRUB_RECORDFAIL_TIMEOUT=0 's /etc/default/grub ' yi ekledim.

Ancak, bu hack'lerin sistemi güç kaybına karşı koruyup korumadığını bilmek zor. Herhangi bir fikir? Daha fazla kimse yapabilir?

    
sordu dronus 04.11.2012 15:54

3 cevap

16

Kiosk uygulaması için sorun, salt okunur bir kök bölümü kullanılarak çözülür. Ayrıca, kullanıcıların bir sonraki yeniden başlatma işleminde yaptıkları veya kaydettikleri değişiklikler geri alınır.

Çoğu uygulama ihtiyacı için yazılabilir bir kök sağlamak amacıyla, üst üste bindirmeler, salt okunur bölümün yazılabilir bir ram tempfs ile üst üste yerleştirilmesi için kullanılabilir.

İşte 'nin alt kısmında böyle bir kurulum oluşturmaya yardımcı olan bir betik var. Komut, bunu ayarlamak için talimatları içerir:

  • dosyayı / etc / initramfs-tools / scripts / init-bottom / root-ro
  • içine koyun.
  • sudo chmod 0755 root-ro
  • sudo update-initramfs -u

GRUB_RECORDFAIL_TIMEOUT=0 'yi /etc/default/grub ' ye eklemeyi ve sudo update-grub 'yi de çalıştırmayı öneriyorum, aksi halde önyükleme menüsü zaman aşımı olmadan görünebilir.

Bundan sonra yeniden başlat. Makine daha sonra mount tarafından kontrol edilebilen salt okunur modda başlar. Bir sonraki yeniden başlatmada uygulanan herhangi bir değişiklik yok olacaktır. Herhangi bir değişiklik yapmak, yazılım ve güncellemeleri yüklemek için sadece GRUB menüsüne girmeniz yeterlidir, önyükleme komut satırlarını değiştirmek için e tuşuna basın ve disable-root-ro=true öğesini çekirdekle başlayan çizgiye ekleyin. Önylemeye devam etmek için F10 tuşuna basın. Kökün her zamanki gibi yazılabilir olduğunu doğrulamak için mount 'yi kullanabilirsiniz. Değişikliklerinizi yapın ve sistemi yeniden başlatın, sistem tekrar okunuyor.

    
verilen cevap dronus 16.02.2013 17:44
9

Bir kez yeniden başlatıldıktan sonra (güç kaybına veya sıfırlama düğmesine basıldığında veya hatta bir çekirdek paniği oluştuğunda), sistem önyükleme işlemini gerçekleştirmek için bir fsck için "y" tuşuna basmanızı istemez.

Bunu önlemek isterseniz, / etc / default / rcS dosyasını düzenleyin ve değiştirin:

FSCKFIX=no

Kime:

FSCKFIX=yes

Bu, bu onarım işleminin size sorulmadan otomatik olarak yürütülmesini sağlayacaktır.

Dezavantajı, verileri kaybedebiliyor olmanız olabilir ve sabit disk sürücüsünü çıkarmak ve yedeklemeyen kritik bir şey varsa önce klonlamak isteyebilirsiniz.

Örneğin, sabit disk denetleyicinizde bir hata varsa ve fsck hatalı olarak parçayı bozuk olarak algılayıp onarmaya çalışırsa, aksi halde önlenebilecek veri kaybına neden olabilir. Bunu hiç kendim yaşamamıştım ve geçtiğimiz 7 yılda binlerce sunucuyla uğraştım - ama yine de bu akılda tutulması gereken bir şey.

    
verilen cevap Roman Gaufman 28.01.2013 23:37
4

Bugün itibariyle, bir kiosk salt okunur çözümü için,% co_de paketini de

yükleyebilir.
sudo apt-get install overlayroot

, onaylanmış bir cevap gibi eksiksiz bir çözüm sunacak. Ayrıca yararlı komuta izin verir

sudo overlay-chroot

, overlayroot 'ye monte edilen eski salt okunur taban diskine sahip bir kabukta oturum açar. Korunan sistemde herhangi bir değişiklik yapmak ve örneğin eski okuma diskine paketleri yüklemek için / kullanmak mümkündür. Ancak, kabuktan çıktıktan sonra, geçici olarak üzerine yazılan RAM dosyaları, yeni yüklenenleri gizleyemeyeceğinden, yeniden başlatma şiddetle önerilir.

    
verilen cevap dronus 20.12.2015 22:44

Etiketlerdeki diğer soruları oku