Seperti yang telah ditunjukkan, Anda harus menginstal chroot yang mampu ARM di perangkat Anda dan menginstal semua paket yang diperlukan di chroot itu. Namun, melakukannya di direktori home Anda menghabiskan banyak ruang berharga. Sebaliknya, itu dapat dilakukan pada kartu SD Anda menggunakan komputer yang berjalan pada OS Linux yang sesuai (diuji pada Linux Mint 17 dan Ubuntu Trusty). Karena saya tidak menemukan informasi tentang ini di tempat lain, saya taruh di sini sebagai jawaban untuk pertanyaan lama.
Petunjuk berikut menganggap Anda ingin menginstal chroot debian jessie di direktori jessie.
Membuat dan mengisi file gambar di komputer desktop
Membuat file gambar kosong
Untuk membuat gambar 1GB bernama IMAGE.img di direktori kerja saat ini, lakukan:
dd if=/dev/zero of=IMAGE.img bs=1G count=1
Perhatikan bahwa B dalam GB ditinggalkan. "jika" singkatan dari "file input", "dari" untuk "file output" dan "bs" untuk "ukuran blok".
Ada perintah yang lebih efisien di luar sana, tetapi itu hanya bekerja pada jenis sistem file tertentu, sejauh yang saya tahu. Yang ini juga berfungsi pada kartu SD atau tempfs. Harap perhatikan penggunaan / dev / zero dan bukan / dev / random atau / dev / urandom karena itu akan memakan waktu lebih lama dan membuatnya membutuhkan waktu lebih lama untuk mentransfer gambar antar perangkat di kemudian hari.
Membuat sistem file pada gambar
Tanpa sistem file, ponsel tidak akan dapat menyimpan data apa pun pada gambar. Tanpa sistem file, Anda belum dapat me-mount gambar ke direktori, hanya ke perangkat blok.
Perintah bash ini akan menampilkan perangkat loop kosong berikutnya ke dalam variabel LOOP
:
$LOOP=$(sudo losetup -f)
Selanjutnya, tetapkan gambar ke perangkat blok:
sudo losetup $LOOP IMAGE.img
Selanjutnya, buat sistem file ext4 di atasnya:
sudo mkfs -t ext4 $LOOP
Selanjutnya, lepaskan gambar dari perangkat loop:
sudo losetup -d $LOOP
Jika Anda mendapatkan perintah tidak ditemukan kesalahan, cukup instal program yang hilang.
Pasang file gambar di komputer untuk mengaksesnya
Sekarang, buat direktori sementara di direktori kerja:
mkdir jessie
dan pasang file gambar IMAGE.img ke sana:
sudo mount -o loop IMAGE.img $(pwd)/jessie
Perintah ini pwd
akan memastikan Anda memberikan mount jalur absolut ke direktori kerja Anda saat ini.
Mengisi gambar dengan sistem operasi baru dengan qemu-debootstrap
Langkah selanjutnya adalah menggunakan qemu-debootstrap untuk mengunduh file yang diperlukan. Ini mudah jika qemu-debootstrap tersedia seperti pada Ubuntu dan OS yang diturunkan. Jika Anda mendapatkan perintah tidak ditemukan kesalahan saat menjalankan
qemu-debootstrap --help
, coba instal paket yang sesuai, yang dapat dilakukan di Ubuntu melalui:
sudo apt-get install qemu-user-static
Untuk mengunduh semua file yang diperlukan dan menyiapkan OS baru, jalankan perintah berikut:
sudo qemu-debootstrap --arch=armhf jessie ./jessie http://http.debian.net/debian
Harap dicatat bahwa jessie
singkatan pertama untuk versi OS sedangkan yang kedua jessie
singkatan direktori di mana file akan diinstal. Sekarang Anda dapat meng-unmount gambar karena sisa pekerjaan harus dilakukan di telepon. Lakukan melalui:
sudo umount $(pwd)/jessie
Jika Anda tidak dapat menginstal qemu-debootstrap, lihat bagian selanjutnya.
Mengisi gambar dengan sistem operasi baru tanpa qemu-debootstrap
Lewati bagian ini jika Anda memiliki qemu-debootstrap. Anda masih membutuhkan debootstrap asli untuk arsitektur Anda. Jika ini adalah armhf, cukup gunakan baris perintah di atas tetapi ganti qemu-debootstrap
dengan
debootstrap
. Jika tidak, ikuti bagian ini.
Untuk mengunduh semua file yang diperlukan untuk OS baru, jalankan perintah berikut:
sudo debootstrap --arch=armhf --foreign jessie ./jessie \
http://http.debian.net/debian
Sekarang Anda dapat meng-unmount gambar karena sisa pekerjaan harus dilakukan di telepon. Lakukan melalui:
sudo umount $(pwd)/jessie
Transfer gambar ke telepon
Sekarang lebih baik buat arsip tar dari sini yang kemudian Anda salin ke telepon Anda. Tidak masalah apakah arsipnya diletakkan di SD-card atau penyimpanan internal. Buat arsip di desktop menggunakan:
tar -cvzf jessie.tar.gz IMAGE.img
Sekarang, di ponsel Anda, aktifkan dukungan ssh untuk menyalin gambar. Anda juga dapat melakukannya menggunakan kabel USB. Karena server ssh di-reset pada setiap reboot, mulai layanan ssh di ponsel melalui:
sudo service ssh start
Selanjutnya, salin gambar melalui:
scp jessie.tar.gz phablet@ubuntu-phablet:$COPYDIR
di mana variabel COPYDIR
berisi direktori tempat gambar akan disimpan. Perintah ini mengasumsikan bahwa nama pengguna Anda pada ponsel adalah phablet dan nama host ponsel adalah ubuntu-phablet. Anda dapat mengetahui masing-masing dengan mengeluarkan echo $USER
dan echo $HOSTNAME
di telepon.
Sekarang Anda hanya perlu mengekstrak arsip di mana pun Anda ingin gambar berada. Asumsikan direktori tempat Anda ingin gambar berada disimpan dalam variabel IMAGEDIR
. Ekstrak gambar di sana melalui perintah bash:
( cd $IMAGEDIR; tar -xvzf $COPYDIR/jessie.tar.gz; )
Anda sekarang dapat menghapus arsip:
rm $COPYDIR/jessie.tar.gz
Menyelesaikan dan menggunakan gambar di telepon
Jika Anda tidak mengaktifkan server ssh di telepon, lakukan sekarang melalui:
sudo service ssh start
Selanjutnya, pasang gambar Anda ke direktori pilihan Anda (dalam hal ini "jessie"):
sudo mount -o loop $IMAGEDIR/IMAGE.img $(pwd)/jessie
Sekarang, masukkan chroot Anda untuk pertama kalinya melalui:
ssh localhost "sudo chroot $(pwd)/jessie /bin/bash"
Jika Anda memiliki qemu-debootstrap yang tersedia di komputer Anda, Anda sudah selesai. Gunakan 2 perintah di atas untuk menghubungkan ke chroot Anda. Jika tidak, Anda masih harus menjalankan perintah berikut setelah Anda berada di dalam chroot Anda, untuk mengatur OS dengan benar:
/debootstrap/debootstrap --second-stage
Ringkasan cara mengakses chroot
Jika Anda mengikuti langkah-langkah di atas, Anda seharusnya dapat mengakses chroot menggunakan skrip sederhana ini di ponsel:
#!/bin/bash
sudo service ssh start
ssh localhost "sudo chroot jessie /bin/bash"
Anda harus ssh pertama ke ponsel Anda sendiri dari telepon karena pembatasan apparmor dari aplikasi terminal. Aplikasi terminal hanya diperbolehkan untuk menjalankan binari di lokasi tertentu dan direktori home Anda atau kartu SD tidak termasuk di dalamnya. Namun, layanan ssh tidak memiliki batasan seperti itu.