Bir LUKS bölümünü nasıl küçültebilirim, `kripto kurulumu yeniden boyutlandırılır` ne yapar?


14

Tek bir ext4 dosya sistemi (LVM falan yok) içeren bir LUKS şifreli bölümü yeniden boyutlandırma devam ediyor. Cryptsetup SSS eski bölümü kaldırıp yeniden, ama çok zaman israf gibi sesler olduğunu önerir. Bu nedenle bölümü el ile dikkatlice yeniden boyutlandırarak işlem yapmak istiyorum.

Şimdiye kadar, yapmam gerektiğini düşünüyorum:

  1. Dosya sisteminin (şifreli) bir yedeğini oluşturun. Önemli! Aşağıdaki görevleri gerçekleştirirken verilerinizi ilk kaybeden siz olmayacaksınız.
  2. Mevcut ext4 dosya sistemini çıkarın (örn. Canlı CD'ye önyükleme yaparak). Canlı CD'den önyükleme yapıyorsanız, şifreli bölümü kullanarakcryptsetup luksOpen /dev/sdXY ExistingExt4
  3. Varolan ext4 dosya sistemini yeniden boyutlandırın .
  4. cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORS
  5. LUKS bölümünü kullanarak kapatın / "bağlantısını kesin" cryptsetup luksClose ExistingExt4
  6. Bölüm boyutunu küçültün.

Yukarıdaki adımlar doğru mu?

4. adımda ne seçmeliyim $SECTORS? Bu adım gerekli mi? cryptsetupManuel sayfa gerçekten tanımlayıcı değildir resizeseçeneği:

resize <name>
    resizes an active mapping <name>.
    If --size (in sectors) is not specified, the size of the underlying
    block device is used.

Son olarak, ext4 bölümünü 15 GiB ile küçültürsem, 15 GiB'nin mevcut bölümden kullanılarak kaldırılabileceğini varsayabilir miyim parted? Evetse, nasıl yapılır? Eğer önemliyse, diskim GPT olarak bölümlendi.


1
Her zaman kripto kurulumundaki yeniden boyutlandırma seçeneğini merak ettim. Cryptsetup SSS bile: "2.15 Bir dm-crypt veya LUKS bölümünü yeniden boyutlandırabilir miyim? Evet, ne dm-crypt ne de LUKS bölüm boyutunu depolayamazsınız." Öyleyse, bölüm boyutu ile ilgisi yoksa neden yeniden boyutlandırma seçeneği var ...
Dago

Yanıtlar:


15

Yedekledikten (adım 1) ve bağlantısını kestikten (2 ile 3 arasında) sonra fsck, dosya sisteminin sağlıklı olduğundan emin olmak için çalıştırın :

e2fsck -f /dev/mapper/ExistingExt4

Bunun dışında adımlar tamam.

$ SEKTÖRLER için ne seçmeliyim? Bu adım gerekli mi?

Bu adım gereklidir, aksi takdirde bölüm hala eski tarafta görünecektir. Bu, Nautilus ile doğrulanır, yeniden boyutlandırıldıktan sonra bile resize2fs, LUKS bölümü eski boyut olarak ortaya çıktı. Çalıştırdıktan sonra cryptsetup resizedoğru sayı gösterilir. Bu adım gerekli değildir. Yalnızca dosya tarayıcısında gösterildiği gibi geçerli boyut durumunu etkiler. Boyutu değiştirdikten ve bölümü kapatıp açtıktan sonra sayı geri yüklenir. Bu nedenle, daha sonra gösterildiği gibi LUKS bölümünü kapatırken bu eski olacaktır.

$SECTORSçıktısına bakarak belirlenebilir cryptsetup status ExistingExt4:

    / dev / mapper / ExistingExt4 etkin.
      tür: LUKS1
      şifre: aes-cbc-essiv: sha256
      anahtar boyutu: 256 bit
      cihaz: / dev / sda2
      ofset: 2056 sektör
      boyutu:     156049348 sektörler
      modu: okuma / yazma

Bir sektör her zaman 512 bayttır ( cryptsetupmanuel sayfada belirtilmiştir ). Bu nedenle, 15 GiB çıkarmak için aşağıdaki sektör boyutunu kullanın 156049348 - 15 * 1024 * 1024 * 2 = 124592068:

cryptsetup resize ExistingExt4 -b 124592068

Bölümü yeniden boyutlandırma gelince, partedGPT bölümleri ile iyi çalışır. Ancak resizekomut, geçici bir çözüm (veya çözüm) olarak çalışmaz, bölüm bilgilerini kaldırın ve http://ubuntuforums.org/showthread.php?p=8721017#post8721017'den esinlenerek yeni bir bölüm oluşturun :

# cryptsetup luksMevcut MevcutExt4 
# parted / dev / sda2
GNU Ayrılmış 2.3
/ Dev / sda kullanma
GNU Parted'e hoş geldiniz! Komutların bir listesini görüntülemek için 'help' yazın.
(ayrıştırılmış) birim s 
(ayrıştırılmış) p
Model: ATA INTEL SSDSA2CW08 (scsi)
Disk / dev / sda: 156301488s
Sektör boyutu (mantıksal / fiziksel): 512B / 512B
Bölme Tablosu: gpt

Numara Başlangıç ​​Bitiş Boyutu Dosya sistemi Adı Bayraklar
 1 34s 2082s 2049s Boot Instagram Hesabındaki Resim ve Videoları bios_grub
 3 2083s 250034s 247952s ext2 RootBoot
 2 250035s 156301438s 156051404s Her şey

15 GiB'nin traş edilmesi gerektiğinden, yeni son olur 156301438 - 15 * 1024 * 1024 * 2 = 124844158. 2. bölümü değiştirmek istediğim için, önce onu kaldırıp sonra "Her şey" etiketiyle yeniden oluşturmak zorundayım (isterseniz bu değiştirilebilir). Not : Bu diskin bir GPT düzeni vardır. MBR için, değiştirmeniz gerekir Everythingtarafından primaryveya extended(denenmemiş, MBR kısmına bölüm vardır boyutlandırma değil sınanmıştır ve değil sınanmamış olduğundan önerilir).

UYARI : aşağıdaki komutlar verileri bozmuştur . Ne olduğunu anlamadan kopyalamayın. Sektör boyutları gerekir aksi takdirde, değiştirilemez OLACAK bölüm (ler) yok. Aptallığınızdan hiçbir şekilde sorumlu değilim, YEDEKLEME YEDEKLEME Verilerinizi riske atmadan önce verilerinizi ikinci bir depolama ortamına yedekleyin.

(parted) rm 2 
(parted) mkpart Her şey 250035s 124844158s
Uyarı: Ortaya çıkan bölüm, en iyi performans için uygun şekilde hizalanmamıştır.
Ignore / İptal? yoksay 
(ayrıldı) p
Model: ATA INTEL SSDSA2CW08 (scsi)
Disk / dev / sda: 156301488s
Sektör boyutu (mantıksal / fiziksel): 512B / 512B
Bölme Tablosu: gpt

Numara Başlangıç ​​Bitiş Boyutu Dosya sistemi Adı Bayraklar
 1 34s 2082s 2049s Boot Instagram Hesabındaki Resim ve Videoları bios_grub
 3 2083s 250034s 247952s ext2 RootBoot
 2 250035s   124844158s 124594124s                Her şey
(ayrıldı) çıkmak

Yukarıdaki partedörnekte, sektörlerim daha önceki bir kurulumdan kaynaklanan bir hata olan hizalanmamıştır, buna çok fazla dikkat etmeyin.

İşte bu! cryptsetup statusVe file -Ls /dev/...öğelerini kullanarak her şeyin yolunda olduğunu doğrulayabilir ve yeniden başlatabilirsiniz .


1
Bu çözümü tam yedekleme olmadan kullanmamanızı şiddetle tavsiye ederim, çünkü yanlış gitme olasılığı yüksektir. Ancak tam bir yedeğiniz varsa, yeni bir bölüm oluşturmak çok daha kolaydır.

Tahmin edeyim, bir insan bunu yaptı mı? Her neyse, bununla oynamadan önce bir yedeğin yapılması gerektiğini açıkça vurguladım. Böyle bir manuel yapmadan önce bir yedekleme yapılması gerektiği açık olduğunu düşündüm ... o zaman bile nasıl net talimatları ve doğrulama yolları göz önüne alındığında birileri nasıl bu karışıklık olabilir?
Lekensteyn

Bahsettiğiniz başarısızlık için bir kaynağınız var mı? Herkes verilen bilgilerin yanlış olduğunu iddia edebilir, ancak doğrulamak istiyorum. Gelecekte diğer kullanıcılar için yararlı olabilir ...
Lekensteyn


Yerine rm 2ve mkpart [part-type] [start] [end]bir de kullanabilirsiniz resizepart 2 [end]adını değiştirmeden bir bölümü yeniden boyutlandırmak için veya ofset başlar.
Rob W

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.