Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Add support to installer for ZFS cache (L2Arc) and Log (ZIL) drives

Also add GELI encryption support (experimental)
  • Loading branch information...
commit 754bfae65bc5e82ab784a4d37f6e2f5ef49326d8 1 parent 9dc3bba
@kmoore134 kmoore134 authored
View
64 src-qt4/pc-installgui/installer.cpp
@@ -230,7 +230,7 @@ void Installer::loadDiskInfo()
bool Installer::autoGenPartitionLayout(QString target, bool isDisk)
{
QString targetType, tmp;
- int targetLoc, totalSize = 0, mntsize, swapsize;
+ int targetLoc, totalSize = 0, swapsize;
QString targetDisk, targetSlice, tmpPass, fsType;
bool ok;
ok = false;
@@ -282,65 +282,19 @@ bool Installer::autoGenPartitionLayout(QString target, bool isDisk)
if ( totalSize > 1999900 )
loadGPT=true;
- // If on amd64 lets use ZFS, it rox
- if ( Arch == "amd64" ) {
- // Add the main zfs pool with standard partitions
- fsType= "ZFS";
- fileSystem << targetDisk << targetSlice << "/(compress=lz4),/tmp(compress=lz4|exec=off|setuid=off),/usr(canmount=off),/usr/home(compress=lz4),/usr/jails(compress=lz4),/usr/obj(compress=lz4),/usr/pbi(compress=lz4),/usr/ports(compress=lz4),/usr/ports/distfiles(compress=off),/usr/src(compress=lz4),/var(canmount=off),/var/audit(compress=lz4),/var/log(compress=lz4|exec=off|setuid=off),/var/tmp(compress=lz4|exec=off|setuid=off)" << fsType << tmp.setNum(totalSize) << "" << "";
- sysFinalDiskLayout << fileSystem;
- fileSystem.clear();
-
- // Now add swap space
- fileSystem << targetDisk << targetSlice << "SWAP" << "SWAP" << tmp.setNum(swapsize) << "" << "";
- sysFinalDiskLayout << fileSystem;
- fileSystem.clear();
-
- //qDebug() << "Auto-Gen FS:" << fileSystem;
- return true;
- }
-
- // Looks like not on amd64, fallback to UFS+SUJ and print a nice
- // warning for the user explaining they *really* want to be on amd64
- QMessageBox::warning(this, tr("PC-BSD Installer"),
- tr("Detected that you are running the 32bit version. If your system is 64bit capable (most systems made after 2005), you really should be running the 64bit version"),
- QMessageBox::Ok,
- QMessageBox::Ok);
-
- // Start the UFS layout now
- mntsize = 2000;
- fsType="UFS+SUJ";
-
- fileSystem << targetDisk << targetSlice << "/" << fsType << tmp.setNum(mntsize) << "" << "";
- totalSize = totalSize - mntsize;
- //qDebug() << "Auto-Gen FS:" << fileSystem;
+ // Add the main zfs pool with standard partitions
+ fsType= "ZFS";
+ fileSystem << targetDisk << targetSlice << "/(compress=lz4),/tmp(compress=lz4|exec=off|setuid=off),/usr(canmount=off),/usr/home(compress=lz4),/usr/jails(compress=lz4),/usr/obj(compress=lz4),/usr/pbi(compress=lz4),/usr/ports(compress=lz4),/usr/ports/distfiles(compress=off),/usr/src(compress=lz4),/var(canmount=off),/var/audit(compress=lz4),/var/log(compress=lz4|exec=off|setuid=off),/var/tmp(compress=lz4|exec=off|setuid=off)" << fsType << tmp.setNum(totalSize) << "" << "";
sysFinalDiskLayout << fileSystem;
fileSystem.clear();
-
- fileSystem << targetDisk << targetSlice << "SWAP" << "SWAP" << tmp.setNum(swapsize) << "" << "";
- totalSize = totalSize - mntsize;
- //qDebug() << "Auto-Gen FS:" << fileSystem;
+ // Now add swap space
+ fileSystem << targetDisk << targetSlice << "SWAP.eli" << "SWAP.eli" << tmp.setNum(swapsize) << "" << "";
sysFinalDiskLayout << fileSystem;
fileSystem.clear();
- // If less than 3GB, skip /var and leave on /
- if ( totalSize > 3000 ) {
- // Figure out the default size for /var if we are on FreeBSD / PC-BSD
- mntsize = 2048;
- fileSystem << targetDisk << targetSlice << "/var" << fsType << tmp.setNum(mntsize) << "" << "";
- totalSize = totalSize - mntsize;
- //qDebug() << "Auto-Gen FS:" << fileSystem;
- sysFinalDiskLayout << fileSystem;
- fileSystem.clear();
- }
-
- // Now use the rest of the disk / slice for /usr
- fileSystem << targetDisk << targetSlice << "/usr" << fsType << tmp.setNum(totalSize) << "" << "";
//qDebug() << "Auto-Gen FS:" << fileSystem;
- sysFinalDiskLayout << fileSystem;
- fileSystem.clear();
-
- return true;
+ return true;
}
@@ -462,7 +416,7 @@ QStringList Installer::getDiskSummary()
for (int i=0; i < copyList.count(); ++i) {
if ( copyList.at(i).at(0) == workingDisk \
&& copyList.at(i).at(1) == workingSlice \
- && copyList.at(i).at(2) == "SWAP" ) {
+ && copyList.at(i).at(2) == "SWAP.eli" ) {
// Write the user summary
summaryList << "";
@@ -1205,7 +1159,7 @@ QStringList Installer::getDiskCfgSettings()
for (int i=0; i < copyList.count(); ++i) {
if ( copyList.at(i).at(0) == workingDisk \
&& copyList.at(i).at(1) == workingSlice \
- && copyList.at(i).at(2) == "SWAP" ) {
+ && copyList.at(i).at(2) == "SWAP.eli" ) {
// Write the partition line
tmpList << "disk" + tmp.setNum(disk) + "-part=" \
View
157 src-qt4/pc-installgui/wizardDisk.cpp
@@ -44,6 +44,17 @@ void wizardDisk::programInit()
connect(listZFSDisks,SIGNAL(itemClicked(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
connect(listZFSDisks,SIGNAL(itemActivated(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
connect(listZFSDisks,SIGNAL(itemChanged(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
+ connect(groupZFSCache,SIGNAL(clicked(bool)),this,SLOT(slotCheckComplete()));
+ connect(listZFSCache,SIGNAL(itemClicked(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
+ connect(listZFSCache,SIGNAL(itemActivated(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
+ connect(listZFSCache,SIGNAL(itemChanged(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
+ connect(groupZFSLog,SIGNAL(clicked(bool)),this,SLOT(slotCheckComplete()));
+ connect(listZFSLog,SIGNAL(itemClicked(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
+ connect(listZFSLog,SIGNAL(itemActivated(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
+ connect(listZFSLog,SIGNAL(itemChanged(QListWidgetItem *)),this,SLOT(slotCheckComplete()));
+ connect(groupEncrypt,SIGNAL(clicked(bool)),this,SLOT(slotCheckComplete()));
+ connect(lineEncPass,SIGNAL(textChanged(const QString &)),this,SLOT(slotCheckComplete()));
+ connect(lineEncPass2,SIGNAL(textChanged(const QString &)),this,SLOT(slotCheckComplete()));
}
@@ -172,6 +183,12 @@ int wizardDisk::nextId() const
}
break;
case Page_ZFS:
+ return Page_ZFS2;
+ break;
+ case Page_ZFS2:
+ return Page_Enc;
+ break;
+ case Page_Enc:
return Page_Mounts;
break;
case Page_Mounts:
@@ -190,6 +207,8 @@ int wizardDisk::nextId() const
bool wizardDisk::validatePage()
{
+ bool found;
+
// Generate suggested disk layout and show disk tree
if ( prevID == Page_BasicDisk && currentId() == Page_Mounts) {
generateDiskLayout();
@@ -197,7 +216,7 @@ bool wizardDisk::validatePage()
}
// Generate suggested disk layout and show disk tree
- if ( prevID == Page_ZFS && currentId() == Page_Mounts) {
+ if ( prevID == Page_Enc && currentId() == Page_Mounts) {
generateDiskLayout();
populateDiskTree();
}
@@ -206,6 +225,10 @@ bool wizardDisk::validatePage()
if ( prevID == Page_BasicDisk && currentId() == Page_ZFS)
populateZFSDisks();
+ // Show the other disks available
+ if ( prevID == Page_ZFS && currentId() == Page_ZFS2)
+ populateZFSDisks2();
+
// Basic mode, generate a disk layout and show summary
if ( prevID == Page_BasicDisk && currentId() == Page_Confirmation) {
generateDiskLayout();
@@ -329,6 +352,66 @@ bool wizardDisk::validatePage()
// Disable the next button until we get a working config
button(QWizard::NextButton)->setEnabled(false);
return false;
+ case Page_ZFS2:
+ // Not using log / cache?
+ if ( !groupZFSCache->isChecked() && ! groupZFSLog->isChecked() )
+ {
+ button(QWizard::NextButton)->setEnabled(true);
+ return true;
+ }
+ // Using both? See if we have any duplicates
+ if ( groupZFSCache->isChecked() && groupZFSLog->isChecked() )
+ {
+ // Check for any matches
+ for ( int i = 0; i < listZFSCache->count(); ++i ) {
+ if ( listZFSCache->item(i)->checkState() == Qt::Checked )
+ for ( int z = 0; z < listZFSLog->count(); ++i ) {
+ if ( listZFSLog->item(z)->checkState() == Qt::Checked )
+ if ( listZFSLog->item(z)->text() == listZFSCache->item(i)->text() ) {
+ button(QWizard::NextButton)->setEnabled(false);
+ return false;
+ }
+ }
+ }
+ }
+
+ // Check that we have at least one item checked
+ found = false;
+ if ( groupZFSCache->isChecked() )
+ {
+ for ( int i = 0; i < listZFSCache->count(); ++i )
+ if ( listZFSCache->item(i)->checkState() == Qt::Checked )
+ found = true;
+ if ( found == false) {
+ button(QWizard::NextButton)->setEnabled(false);
+ return false;
+ }
+ }
+ if ( groupZFSLog->isChecked() )
+ {
+ for ( int i = 0; i < listZFSLog->count(); ++i )
+ if ( listZFSLog->item(i)->checkState() == Qt::Checked )
+ found = true;
+ if ( found == false) {
+ button(QWizard::NextButton)->setEnabled(false);
+ return false;
+ }
+ }
+
+ button(QWizard::NextButton)->setEnabled(true);
+ return true;
+ case Page_Enc:
+ if ( ! groupEncrypt->isChecked() ) {
+ button(QWizard::NextButton)->setEnabled(true);
+ return true;
+ }
+ if ( lineEncPass->text().isEmpty() || lineEncPass->text() != lineEncPass2->text() ) {
+ button(QWizard::NextButton)->setEnabled(false);
+ return false;
+ }
+
+ button(QWizard::NextButton)->setEnabled(true);
+ return true;
case Page_Confirmation:
button(QWizard::FinishButton)->setEnabled(true);
return true;
@@ -357,6 +440,40 @@ void wizardDisk::populateZFSDisks()
}
}
+void wizardDisk::populateZFSDisks2()
+{
+ qDebug() << "Adding ZFS2 disks...";
+ listZFSCache->clear();
+ listZFSLog->clear();
+
+ // What is the primary target disk
+ QString curDisk = comboDisk->currentText();
+ curDisk.truncate(curDisk.indexOf(" -"));
+
+ // Get a list of other disks being used
+ QStringList usedDisks;
+ if ( groupZFSOpts->isChecked() ) {
+ for ( int i = 0; i < listZFSDisks->count(); ++i )
+ if ( listZFSDisks->item(i)->checkState() == Qt::Checked ) {
+ QString zDisk = listZFSDisks->item(i)->text();
+ zDisk.truncate(zDisk.indexOf(" -"));
+ usedDisks << zDisk;
+ }
+ }
+
+ // Now add any available disks to the combo boxes
+ for (int z=0; z < sysDisks.count(); ++z)
+ if ( sysDisks.at(z).at(0) == "DRIVE" && sysDisks.at(z).at(1) != curDisk && ! usedDisks.contains(sysDisks.at(z).at(1)) )
+ {
+ QListWidgetItem *dItem = new QListWidgetItem(sysDisks.at(z).at(1) + " - " + sysDisks.at(z).at(2) + "MB " + sysDisks.at(z).at(3));
+ dItem->setCheckState(Qt::Unchecked);
+ listZFSCache->addItem(dItem);
+ QListWidgetItem *dItem2 = new QListWidgetItem(sysDisks.at(z).at(1) + " - " + sysDisks.at(z).at(2) + "MB " + sysDisks.at(z).at(3));
+ dItem2->setCheckState(Qt::Unchecked);
+ listZFSLog->addItem(dItem2);
+ }
+}
+
bool wizardDisk::checkDiskSpace()
{
if ( getDiskSliceSize() < 4000 )
@@ -417,6 +534,10 @@ void wizardDisk::generateDiskLayout()
if ( totalSize != -1 )
{
fsType= "ZFS";
+ if ( groupEncrypt->isChecked() ) {
+ fsType="ZFS.eli";
+ tmpPass=lineEncPass->text();
+ }
QString rootOpts="";
if ( checkSSD->isChecked() )
@@ -431,7 +552,7 @@ void wizardDisk::generateDiskLayout()
// Now add swap space if NOT on a SSD
if ( ! checkSSD->isChecked() ) {
- fileSystem << targetDisk << targetSlice << "SWAP" << "SWAP" << tmp.setNum(swapsize) << "" << "";
+ fileSystem << targetDisk << targetSlice << "SWAP.eli" << "SWAP.eli" << tmp.setNum(swapsize) << "" << "";
sysFinalDiskLayout << fileSystem;
fileSystem.clear();
}
@@ -550,7 +671,7 @@ void wizardDisk::slotResizeFS()
minSize = 100;
// See if we need some other sanity check on sizes
- if ( mnt == "SWAP" )
+ if ( mnt == "SWAP.eli" )
minSize = 256;
if ( mnt == "/" )
minSize = 2000;
@@ -895,6 +1016,10 @@ void wizardDisk::generateCustomDiskLayout()
// Start building the ZFS file-systems
QStringList zMnts;
fsType = "ZFS";
+ if ( groupEncrypt->isChecked() ) {
+ fsType="ZFS.eli";
+ tmpPass=lineEncPass->text();
+ }
int zpoolSize = getDiskSliceSize();
// Deduct any swap space
@@ -920,6 +1045,26 @@ void wizardDisk::generateCustomDiskLayout()
zOpts = zOpts + " " + zDisk;
}
}
+ // Any additional ZFS cache devices?
+ if ( groupZFSCache->isChecked() ) {
+ zOpts+=" cache";
+ for ( int i = 0; i < listZFSCache->count(); ++i )
+ if ( listZFSCache->item(i)->checkState() == Qt::Checked ) {
+ zDisk = listZFSCache->item(i)->text();
+ zDisk.truncate(zDisk.indexOf(" -"));
+ zOpts = zOpts + " " + zDisk;
+ }
+ }
+ // Any additional ZFS log devices?
+ if ( groupZFSLog->isChecked() ) {
+ zOpts+=" log";
+ for ( int i = 0; i < listZFSLog->count(); ++i )
+ if ( listZFSLog->item(i)->checkState() == Qt::Checked ) {
+ zDisk = listZFSLog->item(i)->text();
+ zDisk.truncate(zDisk.indexOf(" -"));
+ zOpts = zOpts + " " + zDisk;
+ }
+ }
// Save the final disk layout
fileSystem.clear();
@@ -928,7 +1073,7 @@ void wizardDisk::generateCustomDiskLayout()
fileSystem.clear();
if ( ! checkSSD->isChecked() ) {
- fileSystem << targetDisk << targetSlice << "SWAP" << "SWAP" << tmp.setNum(swapsize) << "" << "";
+ fileSystem << targetDisk << targetSlice << "SWAP.eli" << "SWAP.eli" << tmp.setNum(swapsize) << "" << "";
sysFinalDiskLayout << fileSystem;
}
@@ -1019,7 +1164,7 @@ void wizardDisk::generateConfirmationText()
summaryList << tr("FileSystem:") + " " + copyList.at(i).at(3);
summaryList << tr("Size:") + " " + copyList.at(i).at(4) + "MB ";
- if ( copyList.at(i).at(3) == "ZFS" ) {
+ if ( copyList.at(i).at(3) == "ZFS" || copyList.at(i).at(3) == "ZFS.eli" ) {
QStringList zDS = copyList.at(i).at(2).split(",/");
QString zTMP;
for (int ds = 0; ds < zDS.size(); ++ds) {
@@ -1051,7 +1196,7 @@ void wizardDisk::generateConfirmationText()
for (int i=0; i < copyList.count(); ++i) {
if ( copyList.at(i).at(0) == workingDisk \
&& copyList.at(i).at(1) == workingSlice \
- && copyList.at(i).at(2) == "SWAP" ) {
+ && copyList.at(i).at(2) == "SWAP.eli" ) {
// Write the user summary
summaryList << "";
View
3  src-qt4/pc-installgui/wizardDisk.h
@@ -67,6 +67,7 @@ private slots:
void populateDiskInfo();
void populateDiskTree();
void populateZFSDisks();
+ void populateZFSDisks2();
void generateDiskLayout();
void generateCustomDiskLayout();
void generateConfirmationText();
@@ -91,7 +92,7 @@ private slots:
QMenu *popupNE;
dialogFSSize *rFS;
bool restoreMode;
- enum { Page_Intro, Page_BasicDisk, Page_ZFS, Page_Mounts, Page_Expert, Page_Confirmation };
+ enum { Page_Intro, Page_BasicDisk, Page_ZFS, Page_ZFS2, Page_Enc, Page_Mounts, Page_Expert, Page_Confirmation };
signals:
void saved(QList<QStringList>, QString, bool, QString, bool);
View
336 src-qt4/pc-installgui/wizardDisk.ui
@@ -640,6 +640,342 @@
</item>
</layout>
</widget>
+ <widget class="QWizardPage" name="Page_ZFS2">
+ <layout class="QGridLayout" name="gridLayout_6">
+ <item row="0" column="0" rowspan="5">
+ <layout class="QVBoxLayout" name="verticalLayout_11">
+ <item>
+ <widget class="QLabel" name="label_23">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>55</width>
+ <height>55</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="sysinstaller.qrc">:/modules/images/disk.png</pixmap>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_33">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1">
+ <spacer name="verticalSpacer_38">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>378</width>
+ <height>18</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLabel" name="label_18">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>ZFS allows the use of read-cache (L2Arc) and write log devices (ZIL). If you wish to enable either of these, please select the disks to be used below. </string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <spacer name="verticalSpacer_34">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>18</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="3" column="1">
+ <widget class="QGroupBox" name="groupZFSCache">
+ <property name="title">
+ <string>Enable cache device</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_14">
+ <item row="0" column="0">
+ <widget class="QListWidget" name="listZFSCache"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QGroupBox" name="groupZFSLog">
+ <property name="title">
+ <string>Enable log device</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_15">
+ <item row="0" column="0">
+ <widget class="QListWidget" name="listZFSLog"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWizardPage" name="Page_Enc">
+ <layout class="QGridLayout" name="gridLayout_16">
+ <item row="0" column="0" rowspan="5">
+ <layout class="QVBoxLayout" name="verticalLayout_12">
+ <item>
+ <widget class="QLabel" name="label_24">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>55</width>
+ <height>55</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="sysinstaller.qrc">:/modules/images/encrypted.png</pixmap>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_35">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1">
+ <spacer name="verticalSpacer_37">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>378</width>
+ <height>18</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <widget class="QLabel" name="label_25">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>PC-BSD can encrypt your disks using the GELI framework. This is full-disk encryption and will require a password at startup. If you want to encrypt only your user data, home-directory encryption is available after installation.</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_13">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Minimum</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="2" column="1">
+ <spacer name="verticalSpacer_36">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>18</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="3" column="1">
+ <widget class="QGroupBox" name="groupEncrypt">
+ <property name="title">
+ <string>Encrypt disk with GELI</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_11">
+ <item row="0" column="0">
+ <layout class="QGridLayout" name="gridLayout_7">
+ <item row="0" column="0">
+ <widget class="QLineEdit" name="lineEncPass">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Password</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <spacer name="horizontalSpacer_5">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLineEdit" name="lineEncPass2">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Password (Repeat)</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3">
+ <spacer name="horizontalSpacer_12">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <spacer name="verticalSpacer_7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>387</width>
+ <height>135</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
<widget class="QWizardPage" name="Page_Mounts">
<layout class="QGridLayout" name="gridLayout_10">
<item row="0" column="0" rowspan="5">
Please sign in to comment.
Something went wrong with that request. Please try again.