Saya sering menggunakan VirtualBox untuk membuat mesin virtual untuk menguji versi baru Fedora, program aplikasi baru, dan banyak alat administratif seperti Ansible. Saya bahkan telah menggunakan VirtualBox untuk menguji pembuatan host tamu Windows.
Saya belum pernah menggunakan Windows sebagai sistem operasi utama saya di komputer pribadi saya atau bahkan di VM untuk melakukan beberapa tugas yang tidak jelas yang tidak dapat dilakukan dengan Linux. Namun, saya menjadi sukarelawan untuk organisasi yang menggunakan satu program keuangan yang memerlukan Windows. Program ini berjalan di komputer manajer kantor di Windows 10 Pro, yang telah diinstal sebelumnya.
Aplikasi keuangan ini tidak istimewa, dan program Linux yang lebih baik dapat dengan mudah menggantikannya, tetapi saya telah menemukan bahwa banyak akuntan dan bendahara sangat enggan untuk melakukan perubahan, jadi saya belum dapat meyakinkan orang-orang di organisasi kami untuk bermigrasi .
Serangkaian keadaan ini, bersama dengan ketakutan keamanan baru-baru ini, membuatnya sangat diinginkan untuk mengonversi host yang menjalankan Windows ke Fedora dan untuk menjalankan Windows dan program akuntansi dalam VM pada host tersebut.
Penting untuk dipahami bahwa saya sangat tidak menyukai Windows karena berbagai alasan. Yang utama yang berlaku untuk kasus ini adalah bahwa saya tidak ingin membayar untuk lisensi Windows lainnya – Windows 10 Pro berharga sekitar $200 – untuk menginstalnya pada VM baru. Selain itu, Windows 10 memerlukan informasi yang cukup saat mengaturnya di sistem baru atau setelah instalasi untuk memungkinkan cracker mencuri identitas seseorang, jika database Microsoft dilanggar. Tidak seorang pun harus memberikan nama, nomor telepon, dan tanggal lahir mereka untuk mendaftarkan perangkat lunak.
Memulai
Komputer fisik sudah memiliki perangkat penyimpanan NVMe m.2 240GB yang terpasang di satu-satunya slot m.2 yang tersedia di motherboard. Saya memutuskan untuk menginstal SSD SATA baru di host dan menggunakan SSD yang ada dengan Windows di dalamnya sebagai perangkat penyimpanan untuk VM Windows. Kingston memiliki ikhtisar yang sangat baik tentang berbagai perangkat SSD, faktor bentuk, dan antarmuka di situs webnya.
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Pendekatan itu berarti bahwa saya tidak perlu melakukan instalasi Windows yang benar-benar baru atau perangkat lunak aplikasi apa pun yang ada. Ini juga berarti bahwa manajer kantor yang bekerja di komputer ini akan menggunakan Linux untuk semua aktivitas normal seperti email, akses web, pembuatan dokumen dan spreadsheet dengan LibreOffice. Pendekatan ini meningkatkan profil keamanan host. Satu-satunya waktu VM Windows akan digunakan adalah menjalankan program akuntansi.
Cadangkan dulu
Sebelum saya melakukan hal lain, saya membuat citra ISO cadangan dari seluruh perangkat penyimpanan NVMe. Saya membuat partisi pada drive penyimpanan USB eksternal 500GB, membuat sistem file ext4 di dalamnya, lalu memasang partisi itu di /mnt . Saya menggunakan dd perintah untuk membuat gambar.
Saya menginstal SSD SATA 500GB baru di host dan menginstal spin Fedora 32 Xfce dari Live USB. Pada reboot awal setelah instalasi, drive Linux dan Windows tersedia di menu boot GRUB2. Pada titik ini, host dapat melakukan dual-boot antara Linux dan Windows.
Mencari bantuan di semua tempat internet
Sekarang saya memerlukan beberapa informasi tentang cara membuat VM yang menggunakan hard drive fisik atau SSD sebagai perangkat penyimpanannya. Saya dengan cepat menemukan banyak informasi tentang bagaimana melakukan ini di dokumentasi VirtualBox dan internet secara umum. Meskipun dokumentasi VirtualBox membantu saya untuk memulai, itu tidak lengkap, meninggalkan beberapa informasi penting. Sebagian besar informasi lain yang saya temukan di internet juga cukup lengkap.
Dengan bantuan kritis dari salah satu Koresponden Opensource.com kami, Joshua Holm, saya dapat memecahkan masalah dan membuat ini berhasil dalam prosedur yang dapat diulang.
Membuatnya berfungsi
Prosedur ini sebenarnya cukup sederhana, meskipun satu hack misterius diperlukan untuk membuatnya bekerja. Sistem operasi Windows dan Linux sudah ada pada saat saya siap untuk langkah ini.
Pertama, saya menginstal versi terbaru VirtualBox di host Linux. VirtualBox dapat diinstal dari repositori perangkat lunak banyak distribusi, langsung dari repositori Oracle VirtualBox, atau dengan mengunduh file paket yang diinginkan dari situs web VirtualBox dan menginstalnya secara lokal. Saya memilih untuk mengunduh versi AMD64, yang sebenarnya merupakan penginstal dan bukan paket. Saya menggunakan versi ini untuk menghindari masalah yang tidak terkait dengan proyek khusus ini.
Prosedur instalasi selalu membuat vboxusers grup di /etc/group . Saya menambahkan pengguna yang dimaksudkan untuk menjalankan VM ini ke vboxusers dan disk grup di /etc/group . Penting untuk menambahkan pengguna yang sama ke disk grup karena VirtualBox berjalan sebagai pengguna yang meluncurkannya dan juga memerlukan akses langsung ke /dev/sdx perangkat file khusus untuk bekerja dalam skenario ini. Menambahkan pengguna ke disk group menyediakan tingkat akses tersebut, yang tidak akan mereka miliki.
Saya kemudian membuat direktori untuk menyimpan VM dan memberinya kepemilikan root.vboxusers dan 775 izin. Saya menggunakan /vms untuk direktori, tetapi bisa apa saja yang Anda inginkan. Secara default, VirtualBox membuat mesin virtual baru di subdirektori pengguna yang membuat VM. Itu akan membuat mustahil untuk berbagi akses ke VM di antara banyak pengguna tanpa menciptakan kerentanan keamanan yang besar. Menempatkan direktori VM di lokasi yang dapat diakses memungkinkan berbagi VM.
Saya memulai VirtualBox Manager sebagai pengguna non-root. Saya kemudian menggunakan Preferensi ==> Umum VirtualBox menu untuk mengatur Folder Mesin Default ke direktori /vms .
Saya membuat VM tanpa disk virtual. Jenis harus Windows , dan Versi harus disetel ke Windows 10 64-bit . Tetapkan jumlah RAM yang wajar untuk VM, tetapi ini dapat diubah nanti selama VM dimatikan. Di Harddisk halaman instalasi, saya memilih "Jangan tambahkan hard disk virtual" dan klik Buat . VM baru muncul di jendela VirtualBox Manager. Prosedur ini juga membuat /vms/Test1 direktori.
Saya melakukan ini menggunakan Lanjutan menu dan melakukan semua konfigurasi pada satu halaman, seperti yang terlihat pada Gambar 1. Mode Terpandu memperoleh informasi yang sama tetapi memerlukan lebih banyak klik untuk membuka jendela untuk setiap item konfigurasi. Itu memang memberikan sedikit lebih banyak teks bantuan, tetapi saya tidak membutuhkannya.
Gambar 1:Buat mesin virtual baru tetapi jangan tambahkan hard disk.
Kemudian saya perlu tahu perangkat mana yang ditugaskan oleh Linux ke drive Windows mentah. Sebagai root dalam sesi terminal, gunakan lshw perintah untuk menemukan penetapan perangkat untuk disk Windows. Dalam hal ini, perangkat yang mewakili seluruh perangkat penyimpanan adalah /dev/sdb .
# lshw -short -class disk,volume
H/W path Device Class Description
=========================================================
/0/100/17/0 /dev/sda disk 500GB CT500MX500SSD1
/0/100/17/0/1 volume 2047MiB Windows FAT volume
/0/100/17/0/2 /dev/sda2 volume 4GiB EXT4 volume
/0/100/17/0/3 /dev/sda3 volume 459GiB LVM Physical Volume
/0/100/17/1 /dev/cdrom disk DVD+-RW DU-8A5LH
/0/100/17/0.0.0 /dev/sdb disk 256GB TOSHIBA KSG60ZMV
/0/100/17/0.0.0/1 /dev/sdb1 volume 649MiB Windows FAT volume
/0/100/17/0.0.0/2 /dev/sdb2 volume 127MiB reserved partition
/0/100/17/0.0.0/3 /dev/sdb3 volume 236GiB Windows NTFS volume
/0/100/17/0.0.0/4 /dev/sdb4 volume 989MiB Windows NTFS volume
[root@office1 etc]#
Alih-alih perangkat penyimpanan virtual yang terletak di /vms/Test1 direktori, VirtualBox perlu memiliki cara untuk mengidentifikasi hard drive fisik dari mana ia akan boot. Identifikasi ini dilakukan dengan membuat *.vmdk file, yang menunjuk ke disk fisik mentah yang akan digunakan sebagai perangkat penyimpanan untuk VM. Sebagai pengguna non-root, saya membuat vmdk file yang mengarah ke seluruh perangkat Windows, /dev/sdb .
$ VBoxManage internalcommands createrawvmdk -filename /vms/Test1/Test1.vmdk -rawdisk /dev/sdb
RAW host disk access VMDK file /vms/Test1/Test1.vmdk created successfully.
Saya kemudian menggunakan VirtualBox Manager File ==> Virtual Media Manager dialog untuk menambahkan vmdk disk ke hard disk yang tersedia. Saya mengeklik Tambah , dan /vms default default lokasi ditampilkan dalam dialog manajemen file. Saya memilih Tes1 direktori dan kemudian Test1.vmdk mengajukan. Saya kemudian mengklik Buka , dan Test1.vmdk file ditampilkan dalam daftar hard drive yang tersedia. Saya memilihnya dan mengklik Tutup .
Langkah selanjutnya adalah menambahkan vmdk . ini disk ke perangkat penyimpanan untuk VM kami. Di menu setelan untuk VM Test1 , saya memilih Penyimpanan dan mengklik ikon untuk menambahkan hard disk. Tindakan ini membuka dialog yang menampilkan Test1vmdk file disk virtual dalam daftar berjudul Tidak dilampirkan. Saya memilih file ini dan mengklik Pilih tombol. Perangkat ini sekarang ditampilkan dalam daftar perangkat penyimpanan yang terhubung ke VM Test1 . Satu-satunya perangkat penyimpanan lain di VM ini adalah drive CD/DVD-ROM kosong.
Saya mengeklik Oke untuk menyelesaikan penambahan perangkat ini ke VM.
Ada satu item lagi yang harus dikonfigurasi sebelum VM baru berfungsi. Menggunakan Pengaturan VirtualBox Manager dialog untuk VM Test1 , saya membuka Sistem ==> Motherboard halaman dan memberi tanda centang pada kotak untuk Aktifkan EFI . Jika Anda tidak melakukannya, VirtualBox akan menghasilkan kesalahan yang menyatakan bahwa ia tidak dapat menemukan media yang dapat di-boot saat Anda mencoba mem-boot VM ini.
Mesin virtual sekarang melakukan booting dari hard drive Windows 10 mentah. Namun, saya tidak dapat masuk karena saya tidak memiliki akun reguler di sistem ini, dan saya juga tidak memiliki akses ke kata sandi untuk akun administrator Windows.
Membuka kunci drive
Tidak, bagian ini bukan tentang memecahkan enkripsi hard drive. Sebaliknya, ini tentang melewati sandi untuk salah satu dari banyak akun administrator Windows, yang tidak dimiliki siapa pun di organisasi tersebut.
Meskipun saya dapat mem-boot VM Windows, saya tidak dapat masuk karena saya tidak memiliki akun di host itu dan meminta kata sandi kepada orang-orang adalah pelanggaran keamanan yang mengerikan. Namun demikian, saya perlu masuk ke VM untuk menginstal VirtualBox Guest Additions , yang akan memberikan pengambilan dan pelepasan penunjuk tetikus tanpa hambatan, memungkinkan saya mengubah ukuran VM menjadi lebih besar dari 1024x768, dan melakukan pemeliharaan normal di masa mendatang.
Ini adalah kasus penggunaan yang sempurna untuk kemampuan Linux untuk mengubah kata sandi pengguna. Meskipun saya mengakses akun administrator sebelumnya untuk memulai, dalam hal ini, dia tidak akan lagi mendukung sistem ini, dan saya tidak akan dapat membedakan kata sandinya atau pola yang dia gunakan untuk membuatnya. Saya hanya akan menghapus kata sandi untuk sysadmin sebelumnya.
Ada alat perangkat lunak sumber terbuka yang sangat bagus khusus untuk tugas ini. Di host Linux, saya menginstal chntpw , yang mungkin merupakan singkatan dari sesuatu seperti, "Ubah Kata Sandi NT."
# dnf -y install chntpw
Saya mematikan VM lalu memasang /dev/sdb3 partisi pada /mnt . Saya memutuskan bahwa /dev/sdb3 adalah partisi yang benar karena ini adalah partisi NTFS besar pertama yang saya lihat di output dari lshw perintah yang saya lakukan sebelumnya. Pastikan untuk tidak memasang partisi saat VM sedang berjalan; yang dapat menyebabkan kerusakan data yang signifikan pada perangkat penyimpanan VM. Perhatikan bahwa partisi yang benar mungkin berbeda pada host lain.
Navigasikan ke /mnt/Windows/System32/config direktori. chntpw program utilitas tidak berfungsi jika itu bukan direktori kerja saat ini (PWD). Mulai program.
# chntpw -i SAM
chntpw version 1.00 140201, (c) Petter N Hagen
Hive <SAM> name (from header): <\SystemRoot\System32\Config\SAM>
ROOT KEY at offset: 0x001020 * Subkey indexing type is: 686c <lh>
File size 131072 [20000] bytes, containing 11 pages (+ 1 headerpage)
Used for data: 367/44720 blocks/bytes, unused: 14/24560 blocks/bytes.
<>========<> chntpw Main Interactive Menu <>========<>
Loaded hives: <SAM>
1 - Edit user data and passwords
2 - List groups
- - -
9 - Registry editor, now with full write support!
q - Quit (you will be asked if there is something to save)
What to do? [1] ->
chntpw perintah menggunakan TUI (Text User Interface), yang menyediakan satu set pilihan menu. Ketika salah satu item menu utama dipilih, menu sekunder biasanya ditampilkan. Mengikuti nama menu yang jelas, pertama-tama saya memilih item menu 1 .
What to do? [1] -> 1
===== chntpw Edit User Info & Passwords ====
| RID -|---------- Username ------------| Admin? |- Lock? --|
| 01f4 | Administrator | ADMIN | dis/lock |
| 03ec | john | ADMIN | dis/lock |
| 01f7 | DefaultAccount | | dis/lock |
| 01f5 | Guest | | dis/lock |
| 01f8 | WDAGUtilityAccount | | dis/lock |
Please enter user number (RID) or 0 to exit: [3e9]
Selanjutnya, saya memilih akun admin kami, john , dengan mengetikkan RID pada prompt. Ini menampilkan informasi tentang pengguna dan menawarkan item menu tambahan untuk mengelola akun.
Please enter user number (RID) or 0 to exit: [3e9] 03eb
================= USER EDIT ====================
RID : 1003 [03eb]
Username: john
fullname:
comment :
homedir :
00000221 = Users (which has 4 members)
00000220 = Administrators (which has 5 members)
Account bits: 0x0214 =
[ ] Disabled | [ ] Homedir req. | [ ] Passwd not req. |
[ ] Temp. duplicate | [X] Normal account | [ ] NMS account |
[ ] Domain trust ac | [ ] Wks trust act. | [ ] Srv trust act |
[X] Pwd don't expir | [ ] Auto lockout | [ ] (unknown 0x08) |
[ ] (unknown 0x10) | [ ] (unknown 0x20) | [ ] (unknown 0x40) |
Failed login count: 0, while max tries is: 0
Total login count: 47
- - - - User Edit Menu:
1 - Clear (blank) user password
2 - Unlock and enable user account [probably locked now]
3 - Promote user (make user an administrator)
4 - Add user to a group
5 - Remove user from a group
q - Quit editing user, back to user select
Select: [q] > 2
Pada titik ini, saya memilih item menu 2 , "Buka kunci dan aktifkan akun pengguna," yang menghapus kata sandi dan memungkinkan saya masuk tanpa kata sandi. Omong-omong – ini adalah login otomatis. Saya kemudian keluar dari program. Pastikan untuk melepas /mnt sebelum melanjutkan.
Aku tahu, aku tahu, tapi kenapa tidak! Saya telah melewati keamanan pada drive dan host ini, jadi tidak masalah sedikit pun. Pada titik ini, saya masuk ke akun administratif lama dan membuat akun baru untuk diri saya sendiri dengan kata sandi yang aman. Saya kemudian masuk sebagai diri saya sendiri dan menghapus akun admin lama sehingga tidak ada orang lain yang dapat menggunakannya.
Ada juga petunjuk di internet untuk menggunakan akun Administrator Windows (01f4 dalam daftar di atas). Saya bisa saja menghapus atau mengubah kata sandi pada akun itu jika tidak ada akun admin organisasi. Perhatikan juga bahwa prosedur ini dapat dilakukan dari USB langsung yang berjalan pada host target.
Mengaktifkan kembali Windows
Jadi saya sekarang menjalankan SSD Windows sebagai VM di Host Fedora saya. Namun, dalam pergantian peristiwa yang membuat frustrasi, setelah berjalan selama beberapa jam, Windows menampilkan pesan peringatan yang menunjukkan bahwa saya perlu "Mengaktifkan Windows".
Setelah mengikuti lebih banyak halaman web buntu, saya akhirnya menyerah untuk mencoba mengaktifkan kembali menggunakan kode yang ada karena tampaknya telah dihancurkan. Akhirnya, ketika mencoba mengikuti salah satu sesi obrolan dukungan virtual online, aplikasi "Dapatkan bantuan" virtual menunjukkan bahwa instance Windows 10 Pro saya sudah diaktifkan. Bagaimana ini bisa terjadi? Itu terus menginginkan saya untuk mengaktifkannya, namun ketika saya mencoba, katanya sudah diaktifkan.
Atau tidak
Pada saat saya telah menghabiskan beberapa jam selama tiga hari untuk melakukan penelitian dan eksperimen, saya memutuskan untuk kembali mem-boot SSD asli ke Windows dan kembali lagi di kemudian hari. Tetapi kemudian Windows – bahkan ketika di-boot dari perangkat penyimpanan asli – menuntut untuk diaktifkan kembali.
Mencari situs dukungan Microsoft tidak membantu. Setelah harus repot dengan dukungan otomatis yang sama seperti sebelumnya, saya menelepon nomor telepon yang disediakan hanya untuk diberitahu oleh sistem respons otomatis bahwa semua dukungan untuk Windows 10 Pro hanya disediakan oleh internet. Sekarang, saya hampir satu hari terlambat menjalankan komputer dan menginstal kembali di kantor.
Kembali ke masa depan
Saya akhirnya menyedotnya, membeli salinan Windows 10 Home – dengan harga sekitar $120 – dan membuat VM dengan perangkat penyimpanan virtual untuk menginstalnya.
Saya menyalin sejumlah besar file dokumen dan spreadsheet ke direktori home manajer kantor. Saya menginstal ulang satu program Windows yang kami perlukan dan memverifikasi dengan pengelola kantor bahwa program tersebut berfungsi dan semua data ada di sana.
Pemikiran terakhir
Jadi tujuan saya tercapai, secara harfiah terlambat sehari dan kurang dari $120, tetapi menggunakan pendekatan yang lebih standar. Saya masih membuat beberapa penyesuaian pada izin dan memulihkan buku alamat Thunderbird; Saya memiliki beberapa cadangan CSV untuk bekerja, tetapi *.mab file berisi informasi yang sangat sedikit pada drive Windows. Saya bahkan menggunakan Linux find perintah untuk menemukan semua yang ada di perangkat penyimpanan asli.
Saya pergi ke sejumlah lubang kelinci dan harus mengekstrak diri saya dan memulai dari awal setiap kali. Saya mengalami masalah yang tidak terkait langsung dengan proyek ini, tetapi itu memengaruhi pekerjaan saya. Masalah-masalah itu termasuk hal-hal menarik seperti memasang partisi Windows di /mnt di kotak Linux saya dan mendapatkan pesan bahwa partisi tersebut telah ditutup secara tidak benar oleh Windows (ya – pada host Linux saya) dan telah memperbaiki inkonsistensi. Bahkan Windows tidak dapat melakukannya setelah beberapa kali reboot melalui apa yang disebut mode "pemulihan".
Mungkin Anda melihat beberapa petunjuk dalam data keluaran dari chntpw kegunaan. Saya memotong beberapa akun pengguna lain yang ditampilkan di host saya untuk alasan keamanan, tetapi saya melihat dari informasi itu bahwa semua pengguna adalah admin. Tak perlu dikatakan, saya mengubahnya. Saya masih terkejut dengan praktik administrasi yang buruk yang saya temui, tetapi saya rasa seharusnya tidak demikian.
Pada akhirnya, saya terpaksa membeli lisensi, tetapi yang setidaknya sedikit lebih murah daripada yang asli. Satu hal yang saya tahu adalah bahwa bagian Linux ini bekerja dengan sempurna setelah saya menemukan semua informasi yang diperlukan. Masalahnya berurusan dengan aktivasi Windows. Beberapa dari Anda mungkin telah berhasil mengaktifkan kembali Windows. Jika demikian, saya masih ingin tahu bagaimana Anda melakukannya, jadi tambahkan pengalaman Anda di komentar.
Ini adalah alasan lain saya tidak menyukai Windows dan hanya pernah menggunakan Linux di sistem saya sendiri. Ini juga salah satu alasan saya mengubah semua komputer organisasi ke Linux. Hanya butuh waktu dan meyakinkan. Kami hanya memiliki satu program akuntansi yang tersisa, dan saya perlu bekerja dengan bendahara untuk menemukan program yang cocok untuknya. Saya memahami hal ini – saya menyukai alat saya sendiri, dan saya membutuhkannya untuk bekerja dengan cara yang terbaik bagi saya.