Minggu, 17 November 2019

PowerShell Script untuk Mengonversi Nama File UTF-8 yang Salah Interpretasi

Sering kali ketika menyalin file di Windows, beberapa aplikasi salah menginterpretasikan UTF-8 sebagai CodePage 1252, sehingga nama file menjadi rusak. Skrip PowerShell berikut membantu mengembalikan nama file ke UTF-8 yang sebenarnya.

Skrip PowerShell

#region Parameters
param(
  [string]$Dir = "."
)
#endregion

# Pastikan konsol menggunakan CP 65001 dan font NSimSun untuk menampilkan karakter CJK
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

$files = Get-ChildItem -File -Path $Dir -Recurse -Name

foreach ($f in $files) {
  $bytes = [System.Text.Encoding]::GetEncoding(1252).GetBytes($f)
  $nf = [io.path]::GetFileName([System.Text.Encoding]::UTF8.GetString($bytes))
  Write-Host "$f → $nf"
  Rename-Item -LiteralPath "$f" -NewName "$nf"
}

# Pesan "Press any key" ketika dijalankan lewat klik kanan
$auxRegKey='\SOFTWARE\Classes\Microsoft.PowerShellScript.1\Shell\0\Command'
$auxRegVal=(get-itemproperty -literalpath HKLM:$auxRegKey).'(default)'
$auxRegCmd=$auxRegVal.Split(' ',3)[2].Replace('%1', $MyInvocation.MyCommand.Definition)
if ("`"$($myinvocation.Line)`"" -eq $auxRegCmd) {
  Write-Host "`nPress any key to exit..."
  $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')
}

Cara Menggunakan

  1. Simpan skrip sebagai utf8_rename.ps1 di folder paling atas tempat file yang salah interpretasi berada.
  2. Klik kanan skrip di Explorer dan pilih Run with PowerShell.
  3. Pastikan konsol disetel ke CodePage 65001 (UTF-8) dan font mendukung karakter khusus seperti NSimSun.

Catatan

  • Skrip ini mengonversi semua file secara rekursif dalam folder yang ditentukan.
  • Gunakan -LiteralPath pada Rename-Item agar nama file dengan karakter seperti [ atau ] tidak menyebabkan error.
  • Windows 10 19H1 ke atas menyediakan opsi untuk mengatur sistem codepage ke UTF-8, yang bisa membantu mengurangi kasus salah interpretasi.

Label: , , , , ,

Rabu, 24 Juli 2019

Instalasi Debian ARM64 di Raspberry Pi 3 dengan UEFI

Panduan ini menunjukkan cara menginstal Debian ARM64 “vanilla” (bukan Raspbian atau Armbian) pada Raspberry Pi 3 dengan mode UEFI. Anda akan mendapatkan menu GRUB UEFI yang memungkinkan pengaturan opsi saat boot.

Persyaratan

  • Hardware: Micro SD 16 GB atau lebih; Raspberry Pi 3 Model B/B+; power supply yang memadai.
  • Software: Debian ARM64 net install ISO (download di sini); Raspberry Pi 3 UEFI firmware & bootloader (download di sini).
  • (Opsional) Non-free WLAN firmware untuk WiFi.

Persiapan SD Card

  1. Partisi SD sebagai MBR, buat partisi pertama 300 MB dengan tipe 0x0e (FAT16 LBA).
  2. Set partisi sebagai active/bootable.
  3. Format partisi sebagai FAT16.
  4. Ekstrak firmware UEFI Raspberry Pi dan file Debian ISO ke root partisi FAT.
  5. Masukkan SD ke Pi 3 dan nyalakan. Pastikan media lain tidak terpasang.

Booting Awal

Jika benar, Anda akan melihat layar boot multicolor, kemudian logo Pi hitam-putih, dan akhirnya menu GRUB UEFI. Pilih Install untuk memulai instalasi Debian.

Debian Installer

  1. Pilih bahasa, negara, dan keyboard.
  2. Pada deteksi CD-ROM, pilih No untuk "Load CD-ROM drivers from removable media" dan Yes pada "Manually select CD-ROM module".
  3. Masukkan:
    -t vfat -o rw /dev/mmcblk0p1
    untuk device file CD-ROM.
  4. Jika menggunakan WiFi, pilih Yes untuk load firmware dari removable media.
  5. Atur jaringan, hostname, user/password.
  6. Pada partisi, pilih manual dan buat:
    • ESP: 300 MB FAT16 (bootable)
    • Swap: 1 GB
    • Root: sisa SD, ext4
  7. Abaikan pesan apt-configuration problem saat netinstall.
  8. Pilih mirror jaringan terdekat dan software tambahan (minimal SSH server).
  9. Pasang GRUB, lalu reboot jika instalasi selesai.

Perbaikan Pasca Instalasi

  • Hapus cdrom0 dari /etc/fstab jika muncul.
  • Jika menggunakan CUPS dan terjadi error modules-load, hapus /etc/modules-load.d/cups-filters.conf dan reboot.
  • Aktifkan serial console (UEFI >= v1.6) dengan edit /etc/default/grub:
    GRUB_CMDLINE_LINUX="console=ttyS0,115200"
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --stop=1"
    lalu jalankan update-grub.

Appendix A: Membuat dan Memformat Partisi SD

Windows: Gunakan DISKPART. Contoh:

diskpart
list disk
select disk X
clean
convert mbr
create partition primary size=300
active
format fs=fat quick
exit

Linux: Gunakan fdisk dan mkfs:

fdisk /dev/sdX
n (create primary 300M)
t (type 0x0e)
a (bootable)
w
mkfs.vfat -F 16 /dev/sdX1

Appendix B: Mengapa -t vfat -o rw /dev/mmcblk0p1

Debian installer menggunakan mount command internal. Parameter ini memastikan partisi FAT16 bisa dipasang dan digunakan sebagai ESP, termasuk untuk firmware WLAN.

Appendix C: Memperbaiki Partisi yang Salah

Jika partisi pertama tidak terlihat sebagai ESP, gunakan chroot untuk mengubah tipe ke 0x0e sebelum reboot.

Appendix D: Instalasi dari USB ke SD

  • Disarankan tetap menggunakan satu SD card karena lebih aman.
  • Jika menggunakan USB, pastikan:
    • Partisi SD tetap MBR, tipe 0x0e
    • Salin semua bootloader file ke SD
    • Buat efi/boot/bootaa64.efi untuk boot otomatis

Label: , , , , , ,